【问题标题】:Undo records modified using gridview if user clicks Cancel如果用户单击取消,则撤消使用 gridview 修改的记录
【发布时间】:2011-04-05 23:53:56
【问题描述】:

我有一个用户修改页面,它显示用户可以使用 GridView 对象访问的报告列表。

我想要做的是,如果有人对用户页面进行了大量更改,但随后单击取消,则所做的所有更改都将被撤消。 我的主要问题是 GridView,它具有添加/删除/修改按钮,绑定到单独的表。

因此,如果我打开自己的页面,将新报告添加到 gridview,然后点击取消,我不希望该报告保存到我的帐户中。 同样,如果我删除一条记录,然后点击取消,该记录不会被删除。

最好的方法是什么?

【问题讨论】:

  • 您使用的是 WinForm 还是 WebForm?如果它是 webform 并且您正在使用 DataSet,您可以使用由 RowState 过滤器过滤的视图重新绑定您的网格...

标签: c# asp.net entity-framework gridview


【解决方案1】:

您需要在datatable 中维护它并将其放入Session 变量中,并将您的gridview 绑定到会话中的数据表。因此,一旦您完成更改并想要在数据库中提交更改,您必须play with Datatable Row State,您可以从中找到添加了哪一行以及删除或修改了哪一行。

看看这篇文章来了解 Datatable Row 状态 system.data.datarow.rowstate

【讨论】:

    【解决方案2】:

    在这种情况下,您不能将 GridView 绑定到真实的数据源(实体框架)。如果您这样做,更改将被写入数据库,您将很难回滚它们。 GridView 必须使用存储在会话中的临时数据,并且只有在提交更改(页面上的保存按钮)之后,数据才会由 EF 写入数据库。

    【讨论】:

      猜你喜欢
      • 2015-08-31
      • 1970-01-01
      • 1970-01-01
      • 2011-02-11
      • 2014-04-14
      • 2022-11-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多