附加了 Linq数据源的网格视图 - "Row not found or changed"异常



我有一个GridView与LinqDataSource附加到它。我想控制"行未找到或更改"异常,提醒用户他试图更新的记录已被其他人修改。

在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控制台中看到的:

https://i.stack.imgur.com/18F30.png

我怎样才能避免JavaScript错误并显示我的"警报"?提前感谢!

设置e.ExceptionHandled为true

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

这里你只是在异常情况下做了一些事情,但你并没有实际处理它,你没有告诉堆栈你已经处理了这个情况,一切都很好,不用担心。

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

相关内容

  • 没有找到相关文章

最新更新