我很难理解如何合并jQuery / clientside javascript和asp.net以及整个页面生命周期模型。让我们举一个具体的例子。
我有以下3个列表,它们可以是一个网格视图,一个列表框或一个自定义控件。
List 1 - a list of search results
List 2 - an empty list
List 3 - an empty list现在,我希望能够将搜索结果从列表1拖动到列表2或3,此外,我还希望能够将搜索结果从列表2拖动到3,或者将列表3拖动到2。
问题实际上并不是使用jQuery实现该功能,而是在提交时出现问题,当您实际放置项目时可能会执行提交,或者可能会有一个专用按钮来执行提交。
如果只是执行回发,服务器端控件的视图状态将覆盖添加到客户端控件的jQuery值,当页面再次呈现时,一切都会被遗忘。
如何将整个客户端与服务器端捆绑在一起?
一种可能的解决方案是将值存储在隐藏字段中,并让回发利用这个隐藏字段来恢复它所具有的值,但我发现这种解决方案过于臃肿,因为在过去,您只需要向具有正确post数据的页面发送post即可。
发布于 2011-07-23 08:59:14
问题是,您的DOM中有状态,由jQuery脚本维护,但在与服务器的往返过程中丢失了该状态。
要保留状态信息,您必须将其放在隐藏字段(或cookie,甚至HTML5脱机存储)中,但更好的解决方案是完全避免回发,并允许控件通过AJAX调用与服务器进行交互。那么,即使您与服务器交互,您的客户端状态也会被保留。
发布于 2011-07-23 07:31:34
可以从您的控件注册客户端脚本
这可能会让你上路:
http://weblogs.asp.net/asmith/pages/25465.aspx
https://stackoverflow.com/questions/6797065
复制相似问题