我有一个独特的问题。我使用GridView显示数据库中的信息。这个GridView的要求是它总是可编辑的,所以我在ItemTemplates中有TextBoxes,并希望在单击一个按钮时保存这些值。
一切都很好。
问题是我正在尝试排序(并最终分页)工作并遇到问题。如果我从ObjectDataSource绑定GridView,这显然不起作用,因为它在排序之前重新绑定数据源并且我丢失了任何修改的值。如果我从DataTable绑定GridView并尝试将其存储在Session变量中,那么仍然不起作用,因为任何修改后的值都不在会话变量中。
我真的只是在寻找关于我可以做什么来排序(以及稍后页面)而不会丢失用户修改过的值的建议。我意识到大多数人都不会同时修改Gridview所以这是一个奇怪的问题。
答案 0 :(得分:1)
您可以实现GridView的客户端排序,这样可以让您的UI感觉更快。您可以尝试a blog post on sorting with jQuery,但我没有亲自使用建议的方法。
或者,您可以在编辑时通过AJAX将值发送回服务器,并将它们(临时)保存在会话,数据库中,或者在您的方案中将其发布的位置。您显然需要在排序时检索它们。
最后一个选项是将值保存在sort命令引起的回发上。大多数情况下,您会按照处理TextBoxes的OnTextChanged事件和(如上所述)将值保存到临时存储的方式执行某些操作。您不希望这些TextBox自动回送 - 它们只是等待回发,例如由排序事件引起的回发。在这种情况下,您还可以使用在保存事件期间填充的临时存储,以避免重复工作。