C# 有没有办法用jQuery捕获JavaScript PageMethods调用?(显示加载屏幕)
我想知道是否有人知道一种方法,使用jQuery捕获从JavaScript发出的PageMethods调用,以便在调用开始时显示加载屏幕,在调用结束时隐藏(PageMethod响应时) 我知道有很多方法可以捕获像这样发出的ajax调用:C# 有没有办法用jQuery捕获JavaScript PageMethods调用?(显示加载屏幕),c#,javascript,jquery,ajax,pagemethods,C#,Javascript,Jquery,Ajax,Pagemethods,我想知道是否有人知道一种方法,使用jQuery捕获从JavaScript发出的PageMethods调用,以便在调用开始时显示加载屏幕,在调用结束时隐藏(PageMethod响应时) 我知道有很多方法可以捕获像这样发出的ajax调用: $.ajax({ type: "POST", url: "PageName.aspx/MethodName", data: "{}", contentType: "application/json; charset=utf-8",
$.ajax({
type: "POST",
url: "PageName.aspx/MethodName",
data: "{}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function(msg) {
// Do something interesting here.
}
});
但是,有没有一种方法可以捕获它们,然后在它们被这样称呼时做些什么呢
JavaScript
PageMethods.serverSideMethod(responseFromServer);
代码隐藏
[WebMethod()]
public static string serverSideMethod()
{
return response;
}
我正在使用jQuery 1.9.2,用C语言编程,需要这个脚本与IE6兼容。基本相同,在jQuery中使用这个url
url: "PageName.aspx/serverSideMethod",
插入您的方法名,但不要使用偏执,它应该可以工作
编辑:
您可以使用以下ajax事件捕获开始和完成事件:
$.ajax({
beforeSend: function(){
// Handle the beforeSend event
},
complete: function(){
// Handle the complete event
}
// ......
});
然后你可以显示或隐藏任何你想要的。。。以下是完整的文档:您可以在PageMethod调用之后或之前显示加载消息,然后将其隐藏在回调中:
PageMethods.serverSideMethod(responseFromServer);
//Show loading using jQuery Here
function responseFromServer(results){
//process results
//hide loading using jQuery
}
更新:
您是否尝试过Sys.WebForms.PageRequestManager beginRequest事件和endRequest事件:和-请参阅接受答案中的链接。这至少可以让我们深入了解ASP.NET-AJAX模型为页面方法提供的支持。就是这样,我不想每次调用PageMethod时都手动显示和隐藏它。我希望它是自动的。对不起,我误解了这个问题。您是否尝试过Sys.WebForms.PageRequestManager beginRequest事件和endRequest事件:我知道,但我需要找到一种解决方法,使其能够以这种方式调用该方法。