我有一个 GridView,它允许随时编辑每一列、每一行中的值。用户输入所有更改,单击“保存”一次,所有更改均已提交。
用户还必须能够单击“新建”按钮,在 GridView 中显示一个新行(是的,它必须显示在实际的 GridView 中),输入他们想要的任何数据,单击“保存”并将所有更改保存到数据库中。
现在。这是让我困惑的用户案例:用户到达页面,对几个现有行进行多项更改,然后需要添加一个新行,在新行中输入数据,单击“保存”,并将所有更改都转到数据库。
但是,我见过的添加新空行的唯一方法涉及重新绑定 GridView,这意味着所有更改都将丢失。这显然是不好的。
所以,我的问题是:有哪些方法可以向 GridView 添加新的、空的、可编辑的行,而无需重新绑定 GridView?
我唯一能想到的是,在“新建”按钮的单击事件中,从 GridView 中吸出所有数据(包括用户的潜在编辑),将其保存到 ViewState (或其他),添加新行,重新填充网格。对我来说,这似乎有点 hacky,但它应该允许我在 GridView 上关闭 ViewState。
有任何想法吗?
我立即想到了两个选择。第一个是缓存绑定到网格中的原始结果,当您需要添加另一行时,将数据行添加到要绑定到的数据表中,然后将其绑定到网格。如果网格中有变化,则需要更新数据表。完成所有更改并且用户单击“保存”按钮后,您可以迭代表并使用数据更新数据库。
它可能看起来像这样
页面加载
- 获取数据库数据并放入表中
- 将表格绑定到网格
- 将表存储在缓存中
当用户请求新行时
- 获取缓存的数据对象。
- 更新任何已更改的行
- 添加一个空行绑定到网格
当用户保存网格时
- 获取缓存的对象。
- 进行最后一组更新
- 循环遍历行并更新数据库
另一种方法是动态创建网格,但这将涉及比您所描述的内容更多的工作。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)