我有一个GridView,它允许始终在每一行中的每一列中编辑值。用户输入所有更改,单击“保存”一次,然后提交所有更改。
用户还必须能够单击“新建”按钮,在GridView中显示一个新行(是的,它必须显示在实际的GridView中),输入他们想要的任何数据,单击“保存”并进行所有更改到数据库。
现在。以下是抛弃我的用户案例:用户到达页面,对几个现有行进行多处更改,然后需要添加新行,在新行中输入数据,单击“保存”,并将所有更改都转到数据库
但是,我看到添加一个新的空行的唯一方法是重新绑定GridView,这意味着它们的所有更改都将丢失。这显然不好。
所以,我的问题是:在不必重新绑定GridView的情况下,向GridView添加一个新的空的可编辑行有哪些方法?
我唯一能想到的是,在New按钮的click事件中,从GridView中取出所有数据(包括用户的潜在编辑),将其保存到ViewState(或其他),添加新行,重新填充网格。对我来说,这看起来有点hacky,但它应该允许我在GridView上关闭ViewState。
有什么想法吗?
答案 0 :(得分:3)
我可以想到两个选择。第一种是缓存绑定到网格中的原始结果,当需要添加另一行时,将数据行添加到要绑定的数据列中,然后将其绑定到网格。如果网格中有更改,则需要更新数据表。完成所有更改并且用户单击“保存”按钮后,您可以遍历表并使用数据更新数据库。
可能看起来像这样
页面加载
当用户要求新行
时当用户保存网格时
另一种方法是动态创建网格,但考虑到你所描述的内容,这将涉及更多的努力。
答案 1 :(得分:0)
您可以通过javascript动态添加新行,并在save命令中查找新添加的行。这很常见。