【发布时间】:2010-11-16 13:16:22
【问题描述】:
我有一个用于搜索的 asp.net 表单。搜索结果显示在使用 Ajax 的同一页面上。如果我导航到另一个页面并返回,我会得到填充的表单,但搜索结果是空的。返回页面并填充结果的最佳方式是什么。
或者当点击返回按钮时如何强制页面回发以重新填充页面?
【问题讨论】:
标签: asp.net ajax updatepanel partial-page-refresh
我有一个用于搜索的 asp.net 表单。搜索结果显示在使用 Ajax 的同一页面上。如果我导航到另一个页面并返回,我会得到填充的表单,但搜索结果是空的。返回页面并填充结果的最佳方式是什么。
或者当点击返回按钮时如何强制页面回发以重新填充页面?
【问题讨论】:
标签: asp.net ajax updatepanel partial-page-refresh
为了保留页面上先前选择的数据,用户应添加以下代码:
Response.Cache.SetCacheability(HttpCacheability.NoCache)
在页面的Page_load事件中。
所以,当用户点击浏览器后退按钮时,调试器会来到页面的页面加载事件,用户可以将值存储在会话变量(优先搜索条件)中并加载重新绑定Gridview或任何服务器控件。
【讨论】:
您可以使用ScriptManager 上的EnableHistory 属性来执行此操作。将 ScriptManager 的 EnableHistory 属性设置为 True 后,您可以使用 AddHistoryPoint 方法在页面中设置历史记录点。
<asp:ScriptManager runat="server" ID="MyScriptManager" EnableHistory="True">
</asp:ScriptManager>
Dino Esposito 有两篇很好的文章 here (client-side) 和 here (server-side) 关于使用脚本管理器历史记录功能。
【讨论】:
有许多框架试图处理后退按钮和 ajax。
Here is Microsoft 's
这是一个叫really simple history
【讨论】: