我有一个位于UpdatePanel内的GridView。我正在使用RowCommand事件来插入数据,但是当前如果抛出异常,它就不会像我想要的那样写入跟踪。有没有办法在使用异步回发时输出异常消息?
答案 0 :(得分:3)
在异步回发期间,异常不会发送到客户端,而是ASP.NET ajax机制处理错误。每当服务器端发生未处理的异常时,将向包含异常消息的用户显示alert
消息框。要以自己的方式处理它,您可以点击这样的PageManager's EndRequest事件 -
Sys.Application.add_init(__AppInit);
var __pageManager;
function __AppInit() {
__pageManager = Sys.WebForms.PageRequestManager.getInstance();
__pageManager.add_endRequest(__EndRequest);
}
function __EndRequest(sender, args) {
var error = args.get_error();
if (null != error) {
args.set_errorHandled(false);
}
}
答案 1 :(得分:3)
我之前一直在努力解决这个问题。如果在ScriptManager标记中关闭了部分页面渲染,
<asp:ScriptManager runat="server" id="ScriptManager"
EnablePartialRendering="false" />
然后您应该看到ASP.NET YSOD,它可以让您诊断问题。修复后,将部分渲染重新打开。
答案 2 :(得分:-1)
在try catch中包装正在运行异步代码的方法,将错误写入catch中的跟踪。
如果没有访问代码,那么您是否正在处理正确的Gridview事件?例如,如果你有一个带有删除命令的按钮,但是正在处理GridViewCommand中的代码并且不处理事件GridViewDeleted,则会抛出异常。