附加了LinqDataSource的GridView - “未找到或未找到行”异常

时间:2015-05-28 08:12:56

标签: asp.net linq gridview linqdatasource

我有一个附加了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错误并显示“警报”?提前谢谢!

1 个答案:

答案 0 :(得分:0)

e.ExceptionHandled设置为true。

https://msdn.microsoft.com/fr-fr/library/system.web.ui.webcontrols.linqdatasourcestatuseventargs.exceptionhandled(v=vs.110).aspx

在这里,你只是在遇到异常的情况下做某事,但你实际上并没有处理它,你不会告诉堆栈你已经处理过这个案子,一切都很顺利,无需担心。

顺便说一句,我不会检查异常的HResult代码(看起来很脆弱),但我会检查异常的类型。但不确定它是不是最好的方法。