我有一个用户修改页面,它显示用户可以使用GridView对象访问的报告列表。
我想要做的是,如果有人对用户页面进行了大量更改,但随后点击取消,则所有所做的更改都将被撤消。 我的主要问题是GridView,它有一个添加/删除/修改按钮,绑定到一个单独的表。
因此,如果我打开自己的页面,将新报告添加到gridview,然后点击取消,我不希望将该报告保存到我的帐户。 同样,如果我删除一条记录,然后点击取消,则不会删除该记录。
这样做的最佳方式是什么?
答案 0 :(得分:0)
在这种情况下,您不能将GridView绑定到真实数据源(实体框架)。如果这样做,更改将被写入数据库,您将很难将其回滚。 GridView必须使用存储在例如会话中的临时数据,并且只有在提交更改(页面上的“保存”按钮)之后,数据才会被EF写入数据库。
答案 1 :(得分:0)
您需要在datatable
中对此进行维护并将其放在Session
变量中,并将gridview绑定到会话中的数据表。因此,一旦完成更改并想要在数据库中提交更改,您必须play with Datatable Row State
,从中可以找到添加的行以及删除或修改的行。
查看本文以了解Datatable Row状态 system.data.datarow.rowstate