启用浏览器返回按钮,用于带有主页的asp.net c#中的更新面板的中继器控制
本文关键字:net 更新 控制 中继器 asp 启用 按钮 返回 用于 主页 浏览器 | 更新日期: 2023-09-27 18:19:29
我有一个页面Searchbook.aspx,它有3个下拉菜单和一个中继器控件,当我通过该按钮导航到另一个页面时,它有按钮。当我单击浏览器第一页的后退按钮时,会获得默认值,而不是搜索值。我想恢复搜索到的值。
您可以通过在ScriptManager
中设置开关EnableHistory=true
来打开浏览器的历史记录以进行更新面板请求。
以下是一个可能有帮助的代码示例。。。
<asp:ScriptManager ID="scm" runat="server"
EnableHistory="true"
OnNavigate="scm_Navigate"
/>
<div>
<asp:Button ID="btnSubmit" runat="server" Text="Click Me!"
onclick="btnSubmit_Click" />
<asp:UpdatePanel ID="upl" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<asp:Label ID="lblTime" runat="server" />
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="btnSubmit" EventName="Click" />
</Triggers>
</asp:UpdatePanel>
以下是来源:http://aspnetpodcast.com/CS11/blogs/asp.net_podcast/archive/2008/06/15/asp-net-podcast-show-116-using-the-history-functionality-with-the-asp-net-ajax-updatepanel-in-net-3-5-service-pack-1-beta-1.aspx
更新您也可以使用此方法在浏览器中添加历史点。http://msdn.microsoft.com/en-us/library/system.web.ui.scriptmanager.addhistorypoint(v=vs.100).aspx
也许SOF上的这个答案也能帮助。。。https://stackoverflow.com/a/365746/217757
更新2Scott Gu的这篇博客文章总结了这一切。。。http://weblogs.asp.net/scottgu/Tip_2F00_Trick_3A00_-Enabling-Back_2F00_Forward_2D00_Button-Support-for-ASP.NET-AJAX-UpdatePanel
如果您想在浏览器返回按钮上恢复搜索到的值,那么有两种方法可以解决。
-
将用户选择的筛选器值保持在ViewState中。=>在这种情况下,始终通过实现从viewstate获得的条件来绑定数据。
-
或者在查询字符串中保留筛选数据的值。=>在这种情况下,当用户选择筛选条件时,会将值放入查询字符串中,并通过将条件与从URL查询字符串中提取的值绑定数据。
以上两个过程都可以解决您的目的,但第二个过程将是高效和快速的,因为将值放入Viewstate会减慢页面速度。
请让我知道,如果我不能让你的问题正确。
更新-您可以像使用更新面板和使用查询字符串进行页面刷新一样使用Viewstate方法。
Viewstate和使用Session变量相同,请参阅下面的代码。
-
在视图状态中添加值
ViewState.Add("filter1",DropDownList1.SelectedValue);
-
从视图状态获取价值
string getvalue=ViewState["filter1"].ToString();
因此,当选择筛选条件后,单击提交按钮时,在视图状态和页面加载中设置值,获得相同的值,并使用这些值绑定控件。