GridView排序,不会丢失用户修改

时间:2011-11-17 21:54:41

标签: asp.net sorting gridview

我有一个独特的问题。我使用GridView显示数据库中的信息。这个GridView的要求是它总是可编辑的,所以我在ItemTemplates中有TextBoxes,并希望在单击一个按钮时保存这些值。

一切都很好。

问题是我正在尝试排序(并最终分页)工作并遇到问题。如果我从ObjectDataSource绑定GridView,这显然不起作用,因为它在排序之前重新绑定数据源并且我丢失了任何修改的值。如果我从DataTable绑定GridView并尝试将其存储在Session变量中,那么仍然不起作用,因为任何修改后的值都不在会话变量中。

我真的只是在寻找关于我可以做什么来排序(以及稍后页面)而不会丢失用户修改过的值的建议。我意识到大多数人都不会同时修改Gridview所以这是一个奇怪的问题。

1 个答案:

答案 0 :(得分:1)

您可以实现GridView的客户端排序,这样可以让您的UI感觉更快。您可以尝试a blog post on sorting with jQuery,但我没有亲自使用建议的方法。

或者,您可以在编辑时通过AJAX将值发送回服务器,并将它们(临时)保存在会话,数据库中,或者在您的方案中将其发布的位置。您显然需要在排序时检索它们。

最后一个选项是将值保存在sort命令引起的回发上。大多数情况下,您会按照处理TextBoxes的OnTextChanged事件和(如上所述)将值保存到临时存储的方式执行某些操作。您不希望这些TextBox自动回送 - 它们只是等待回发,例如由排序事件引起的回发。在这种情况下,您还可以使用在保存事件期间填充的临时存储,以避免重复工作。