我有一个用于搜索的asp.net表单。搜索结果使用Ajax显示在同一页面上。如果我导航到另一个页面并返回,我会得到填充的表单,但搜索结果为空。返回页面并填充结果的最佳方法是什么。
或者当点击后退按钮时,如何强制页面回发以重新填充包含结果的页面?
答案 0 :(得分:8)
您可以使用EnableHistory上的ScriptManager属性执行此操作。将ScriptManager的EnableHistory属性设置为True后,可以使用AddHistoryPoint方法在页面中设置历史记录点。
<asp:ScriptManager runat="server" ID="MyScriptManager" EnableHistory="True">
</asp:ScriptManager>
Dino Esposito有一对关于使用scriptmanager历史记录功能的文章here (client-side)和here (server-side)。
答案 1 :(得分:3)
有许多框架试图处理后退按钮和ajax
Here is Microsoft 's
这是一个名为really simple history
答案 2 :(得分:1)
如果你使用jQuery,还有一些:
http://plugins.jquery.com/project/history
http://stilbuero.de/jquery/history/
http://www.overset.com/2008/06/18/jquery-history-plugin/
https://stackoverflow.com/questions/116446/what-is-the-best-back-button-jquery-plugin
答案 3 :(得分:0)
为了保留页面上先前选择的数据,用户应添加以下代码:
Response.Cache.SetCacheability(HttpCacheability.NoCache)
在页面的Page_load
事件中。
因此,当用户单击浏览器后退按钮时,调试器将进入页面的页面加载事件,用户可以将值存储在会话变量(先前搜索条件)中并加载重新绑定{{1}或任何服务器控件。