【问题标题】:ASP.NET ObjectDataSource UpdateMethod Exception HandlingASP.NET ObjectDataSource UpdateMethod 异常处理
【发布时间】:2011-02-17 23:09:15
【问题描述】:

我的页面上有一个 GridView 控件,它与 ObjectDataSource 连接,其中 TypeName="BLL.MyLogic" DataObjectTypeName="BLL.MyObject" UpdateMethod="MyUpdateMethod"。

MyUpdateMethod 中的更新是有条件的,我正在检查 _datacontext.submitchanges() 之前的条件。根据我的检查,我抛出异常,如(“不唯一”)或(“未找到适当的逻辑”)等。我通过我的 ObjectDataSource 的 OnUpdated="MyDataUpdated" 在页面级别捕获这些异常。

这些操作运行良好。问题是在该过程完成之后,即使在“发生异常”的情况下,GridView 也会重新加载并且 editindex = -1(已启动)。即使我手动检索editindex并使其可编辑,edittemplate中的表单数据(用户输入的数据)也会被删除。 ViewState 在这里不起作用。

解决这种情况的方法是什么?

提前致谢。

【问题讨论】:

    标签: asp.net exception-handling objectdatasource


    【解决方案1】:

    您是否尝试在 RowUpdated 事件处理程序中将 GridViewUpdatedEventArgs.KeepInEditMode property 设置为 true?

    【讨论】:

    • 感谢您的回复。 KeepInEditMode 与 GridView 而不是 objectdatasource 更相关。挑战不是让它保持在编辑模式。挑战是将其与输入数据一起保持在编辑模式。换句话说,让它表现得像验证失败。在我的情况下,我将它保持在编辑模式,但由于来自 objectdatasource 的 SelectMethod 在更新后立即被调用,我的 gridview 正在重新加载并丢失编辑模板内输入控件的视图状态数据。
    • 你试过把它放在那里吗?我可能是错的,但从我在反射器中看到的情况来看,似乎将此设置为 true 会阻止 gridview 再次进行数据绑定。您可能还希望将 e.ExceptionHandled 设置为 true。
    猜你喜欢
    • 2017-07-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-06
    • 2010-10-29
    相关资源
    最近更新 更多