我有一个附加了LinqDataSource的GridView。我想控制“未找到或未找到行”异常,提醒用户他正在尝试更新的记录已被其他人修改过。
在LinqDataSource的'OnUpdated'方法中,我可以通过这样做来处理异常:
protected void LDS_Updated(object sender, LinqDataSourceStatusEventArgs e)
{
if (e.Exception != null && e.Exception.HResult == -2146233088)
{
ScriptManager.RegisterStartupScript(UpdatePanel1, typeof(UpdatePanel), "Row not found or changed", "alert('Row not found or changed');", true);
}
}
问题是引发了JavaScript异常并且没有出现警报,正如您在我的Firebug控制台中看到的那样:
http://i.stack.imgur.com/18F30.png
如何避免JavaScript错误并显示“警报”?提前谢谢!
答案 0 :(得分:0)
将e.ExceptionHandled
设置为true。
在这里,你只是在遇到异常的情况下做某事,但你实际上并没有处理它,你不会告诉堆栈你已经处理过这个案子,一切都很顺利,无需担心。
顺便说一句,我不会检查异常的HResult代码(看起来很脆弱),但我会检查异常的类型。但不确定它是不是最好的方法。