如果用户单击“取消”,则撤消使用gridview修改的记录

时间:2011-04-05 23:53:56

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

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

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

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

这样做的最佳方式是什么?

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

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

查看本文以了解Datatable Row状态 system.data.datarow.rowstate