【问题标题】:Keep client side class changes between ASP.Net postbacks?在 ASP.Net 回发之间保持客户端类更改?
【发布时间】:2010-02-09 12:28:32
【问题描述】:

我正在使用嵌套列表视图动态绑定表和子表。在客户端,我有一个 jQuery 来切换表格中 TRs 的可见性,以提供组扩展/收缩视图选项。

在回发时,我显然失去了通过 jQuery 应用的类更改。我想知道维护这些客户端类更改的最佳方法是什么?我考虑过为每个表创建一个隐藏的输入控件,以在扩展可见 TR 时存储它们的索引。目的是在回发/重新绑定期间查找索引并将可见类添加到每个相应的元素。

有没有更好的方法或一些本地方法在回发期间将客户端样式/类更改传回服务器?

【问题讨论】:

  • 每次隐藏/显示一个部分并维护显示和不存在的列表时,如何将 AJAX 回调到您的服务器,然后您只需将该数据提供到您的视图刷新,不需要维护或回发。
  • @Lazarus。这是一个好主意,但似乎与将客户端状态存储在隐藏的输入字段中一样多。我希望为此提供一个更优雅/更强大的解决方案,这意味着我不必将更改映射回所服务的下一页。不过还是谢谢。
  • 我想你会发现几乎每个基于门户的 Web 应用程序都会使用 AJAX 调用来处理这类事情,听到这种解决方案被认为不优雅且不健壮,我当然感到惊讶.它最终只是 HTTP,而 jQuery 让它变得如此简单。

标签: asp.net jquery class postback


【解决方案1】:

有很多方法可以做到这一点:

  • 正如您所建议的,隐藏控件包含有关视图状态更改的信息,服务器端然后使用此信息在下一次正确呈现,或者 javascript 在页面加载时查看此信息并调整页面。如果您希望数据在会话(登录)中保持不变,那么您需要让服务器端将信息存储在数据库中并在每次页面访问时呈现。
  • 如果您希望数据保持不变,那么有时最好在进行更改时调用 ajax 将信息存储在服务器上。这具有不强制用户提交表单以保持更改的优点。如果您正在处理的页面确实经常被提交(或者甚至可能没有其他表单元素),这可能是更好的选择。
  • 老派:将信息存储在 cookie 中。废话,再也没有人这样做了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-12-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-28
    • 2011-12-29
    • 2018-03-03
    • 2011-03-10
    相关资源
    最近更新 更多