我想用jQuery在我的aspx.cs文件中调用C#函数。该函数如下所示:
protected void Fill(object sender, EventArgs e) { ...do s.th. with sender... }
在我获得控制权的函数中,我希望通过对发送者进行强制转换来处理。如何使用jquery将发件人传递给服务器?
答案 0 :(得分:2)
你不能像使用jQuery那样调用函数。 jQuery是一种基于javascript的客户端脚本技术,可在客户端浏览器上运行。它不知道ASP.NET是什么。它更不知道服务器端是什么,ASP.NET代码隐藏方法是什么。
这就是说,您可以向服务器端脚本发送一个AJAX请求,在您的情况下,该脚本可以是通用处理程序(.ASHX)或.ASPX页面。在第二种情况下,您可以使用Page Methods。
答案 1 :(得分:2)
请检查:Implementing Client Callbacks Programmatically Without Postbacks in ASP.NET Web Pages
或强>
您好,您可以查看这篇文章:http://pranayamr.blogspot.com/2012/01/calling-server-side-function-from.html,其中讨论了如何使用jQuery函数调用服务器方法。
cs文件,即服务器端代码
[WebMethod]
public static string IsExists(string value)
{ return "True"; }
客户端脚本
function IsExists(pagePath,dataString,textboxid,errorlableid){ //警报(PAGEPATH);
$.ajax({
type: "POST",
url: pagePath,
data: dataString,
contentType: "application/json; charset=utf-8",
dataType: "json",
error: function(XMLHttpRequest, textStatus, errorThrown) {
$(errorlableid).show();
$(errorlableid).html("Error");
},
success:
function(result) {
var flg = true;
if (result != null) {
debugger;
flg = result.d;
if (flg == "True") {
$(errorlableid).show();
}
else {
$(errorlableid).hide();
}
}
}
});
}
function focuslost() {
var pagePath = window.location.pathname + "/IsExists";
var dataString = "{ 'value':'" + $("#<%= txtData.ClientID%>").val() + "' }";
var textboxid = "#<%= txtData.ClientID%>";
var errorlableid = "#<%= lblError.ClientID%>";
IsExists(pagePath, dataString, textboxid, errorlableid);
}