總的來說,
1,注冊ScriptManager的AsyncPostBackError事件,並在服務器官實現它,並拋出被處理過的異常(根據是否為null,可能需要拋出e.Exception或e.Exception.innerException)
2,客戶端用JS來響應,Sys.WebForms.PageRequestManager.getInstance().add_endRequest(EndRequestHandler);添加處理程序
3,實現EndRequestHandler,錯誤信息基本在第二個參數"args“裡面,
4,此時已經完成,由於網上沒搜到現成文檔(有的話請留言),這個args裡面到底有什麼經過我的枚舉,暫列如下
內容比較多,我還是先把枚舉的方法寫出來吧:
01
Sys.WebForms.PageRequestManager.getInstance().add_endRequest(EndRequestHandler);
02
03
function EndRequestHandler(sender, args) {
04
//if (args.get_error() != undefined) {alert(args.get_error().message.replace(/.*Exception:/,'')); args.set_errorHandled(true); }
05
if (args.get_error() != undefined) {
06
args.set_errorHandled(true);
07
var members = 'The \'args\' members are:\n\n';
08
for (var i in args) {
09
members += '\t' + i + '\n';
10
var ai = eval("args." + i);
11
if (typeof ai == "string") continue;
12
for (var t in ai) {
13
members += '\t\t' + t + '\n';
14
var ait = eval("args." + i + "." + t);
15
if (typeof ait == "string") continue;
16
for (var m in ait) {
17
members += '\t\t\t' + m + '\n';
18
}
19
}
20
}
21
document.write("<textarea style='width:1000px; height:600px;'>"+members+"</textarea>");//members如果顯示請自行處理
22
}
23
}