總的來說,
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
}