【问题标题】:how can i get the same page with the click of back button of browser如何通过单击浏览器的后退按钮获得相同的页面
【发布时间】:2010-11-01 16:54:37
【问题描述】:

我在我的 aspx 页面中使用带有 c# 的 asp.net 我在此面板中有一个更新面板 我有一些指向其他站点的链接,这些链接在同一窗口中打开。单击这些链接后,当我通过浏览器的后退按钮返回时,我在更新面板上没有得到相同的结果...

【问题讨论】:

    标签: c# asp.net ajax updatepanel back-button


    【解决方案1】:

    我已经实现了与下面的文章相同,如果您需要进一步的帮助,请告诉我,我会提供一些代码

    http://rchern.wordpress.com/2008/05/11/updatepanel-backforward-browser-navigation/

    首先你必须启用 ScriptManager 历史 EnableHistory="true"
    在这个例子中,我们维护 gridview 分页,当用户浏览器返回按钮时 您在页面首次加载后添加了历史记录点。

    private void AddHistoryPoint(String key, String value, String tile)
    {
        ScriptManager scm = ScriptManager.GetCurrent(this.Page);
        if ((scm.IsInAsyncPostBack == true) && (scm.IsNavigating != true))
        {
            if (pageState == null)
            {
               NameValueCollection pageState = new NameValueCollection();
            }
            if (pageState[key] != null)
            {
                pageState[key] = value;
            }
            else
            {
                pageState.Add(key, value);
            }
            scm.AddHistoryPoint(pageState, tile);
        }
    }
    
    protected void grid_PageIndexChanged1(object sender, EventArgs e)
    {
        AddHistoryPoint("pi", grdProject.PageIndex.ToString(), "Page Index- " + (grdProject.PageIndex + 1).ToString());
    }
    



    这里你必须处理 ScriptManager Navigate Event

         protected void ScriptManager1_Navigate(object sender, System.Web.UI.HistoryEventArgs e)
    {
        if (e.State != null)
        {
            if (e.State["pi"] != null)
            {
                grid.PageIndex = Convert.ToInt32(e.State["pi"]);
            }
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-08
      • 1970-01-01
      • 2014-02-20
      • 1970-01-01
      • 1970-01-01
      • 2011-10-25
      相关资源
      最近更新 更多