在c#中调用JavaScript中的代码
本文关键字:代码 JavaScript 调用 | 更新日期: 2023-09-27 18:15:58
我有一个搜索页面调用"companies"当用户输入关键字并单击"search"时,它将调用一些函数来显示文件" companyesdatagrid "中的搜索结果。
现在,我在companydatagrid中创建了一个简单的下拉列表。ascx文件:
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<asp:DropDownList ID="DropDownList1" Width="200px" runat="server" DataTextField="ItemTypeName" DataValueField="ItemTypeId"
onchange = "CallServerMethod(this)" ValidationGroup="vgLibItem" >
</asp:DropDownList>
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="DropDownList1" EventName="SelectedIndexChanged" />
</Triggers>
我希望它调用一个Java Script函数,该函数将调用函数
public void DropDownList1sel(object sender, EventArgs e)
后面的代码文件(companyesdatagrid . asx .cs)但是,我将测试一个简单的情况,在代码后面调用一个简单的函数:
public void add()
{
int a = 1;
int b = 3;
int c = a + b;
}
在page_load函数(文件公司数据农业. asx .cs)我有:
protected void Page_Load(object sender, System.EventArgs e)
{
// clear the javascript literal
this.responseLiteral.Text = "";
if (!Page.IsPostBack)
{
if (Request.Form["Method"] == "Add")
{
add();
return;
}
}
在companyesdatagrid中。我有这个Java脚本:
<script type="text/javascript">
function CallServerMethod() {
alert("changed");
var dataToSend = { Send1: 'Value1', Send2: 'Value2', Method: 'Add' };
var opts =
{
url: 'companiesdatagrid.ascx',
//url: 'companies.ascx',
//url: 'CompaniesDatagrid.ascx.cs',
//url: 'companies.ascx.cs'
//url: 'companiesdatagrid.ascx/add',
//url: 'CompaniesDatagrid.ascx.cs/add',
//url: 'CompaniesDatagrid.aspx/add',
//url: 'DesktopDefault.aspx?tabindex=2&tabid=15/add',
data: dataToSend,
dataType: 'JSON',
type: 'POST',
success: function (response) {
//Do something here if successful
alert('success');
},
error: function () {
alert('failure');
}
}
$.ajax(opts);
alert("changed 2");
}
</script>
它将只显示警报"更改",然后"更改2",然后"失败"。我从来没有得到成功警报,这意味着我从来没有调用add()函数后面的代码成功!?请注意,所有的评论在url我尝试并得到相同的结果!如何在这里正确地实现它?我真的束手无策了,请帮帮我吧!
首先更改url并检查它是否到达正确的资源,然后检查数据是否正确。
var dataToSend = { Send1: 'Value1', Send2: 'Value2', Method: 'Add' };
var opts =
$.ajax({
type: "POST",
url: "companiesdatagrid.ascx/methodname to be called",
data: dataToSend ,
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function(msg) {
alert('sucess');
},
error: function() {
alert("error");
}
});