启用浏览器返回按钮,用于带有主页的asp.net c#中的更新面板的中继器控制

本文关键字:net 更新 控制 中继器 asp 启用 按钮 返回 用于 主页 浏览器 | 更新日期: 2023-09-27 18:19:29

我有一个页面Searchbook.aspx,它有3个下拉菜单和一个中继器控件,当我通过该按钮导航到另一个页面时,它有按钮。当我单击浏览器第一页的后退按钮时,会获得默认值,而不是搜索值。我想恢复搜索到的值。

启用浏览器返回按钮,用于带有主页的asp.net c#中的更新面板的中继器控制

您可以通过在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

如果您想在浏览器返回按钮上恢复搜索到的值,那么有两种方法可以解决。

  1. 将用户选择的筛选器值保持在ViewState中。=>在这种情况下,始终通过实现从viewstate获得的条件来绑定数据。

  2. 或者在查询字符串中保留筛选数据的值。=>在这种情况下,当用户选择筛选条件时,会将值放入查询字符串中,并通过将条件与从URL查询字符串中提取的值绑定数据。

以上两个过程都可以解决您的目的,但第二个过程将是高效和快速的,因为将值放入Viewstate会减慢页面速度。

请让我知道,如果我不能让你的问题正确。

更新-您可以像使用更新面板和使用查询字符串进行页面刷新一样使用Viewstate方法。

Viewstate和使用Session变量相同,请参阅下面的代码。

  1. 在视图状态中添加值

    ViewState.Add("filter1",DropDownList1.SelectedValue);

  2. 从视图状态获取价值

    string getvalue=ViewState["filter1"].ToString();

因此,当选择筛选条件后,单击提交按钮时,在视图状态和页面加载中设置值,获得相同的值,并使用这些值绑定控件。