0

我在我的一个带有 ASP.NET 4.0 的应用程序中使用 Jquery AJAX。它是一个网络应用程序。我使用了服务器端编码 + 客户端编码方法,即使用 Jquery、JS 和 AJAX。

我有一些包含在 div 元素中的控件,我通过下拉列表的客户端索引更改事件使它们隐藏/显示。

当由于服务器端验证或任何其他实例而发生回发时,div 将保留旧值,即它们的初始状态。例如:div第一次可见,我通过客户端下拉列表的索引更改隐藏它,所以当回发发生时它再次可见,尽管它应该被隐藏。

我已经使用 hiddenfield 来存储值并根据 jquery document.ready 事件中的 Hiddenfield 的值显示/隐藏 div。

现在,我想问有没有其他方法可以得到想要的结果。我期待一些标准的方法来做到这一点,因为现在几乎所有的应用程序都启用了客户端和 AJAX。

4

1 回答 1

0

如果要重新加载整个页面,则必须将状态存储在某处。AJAX 允许您减少/消除页面的完全重新加载,因此它提供了保留状态的错觉。

ASP.Net(我假设问题中的 Web 表单)可以通过将Visible属性div放入ViewState. 这通常需要一个完整的回发或一个UpdatePanel(两者都不太理想但确实有效)。

其他选择

  • 隐藏字段适用于很多事情。
  • Cookie 在特定情况下工作(保持小——记住它们会随每个请求一起发送!)
  • 当您想要存储服务器不需要了解太多/任何信息的客户端值时,Web 浏览器中的本地存储非常有用。
于 2012-12-11T07:13:40.903 回答