Как я могу получить ту же страницу с нажатием кнопки назад браузера - PullRequest
2 голосов
/ 10 июня 2009

Я использую asp.net с c # на моей странице aspx. У меня есть панель обновлений на этой панели, у меня есть ссылки на другие сайты, которые открываются в том же окне. после перехода по этим ссылкам мне, когда я возвращаюсь через кнопку назад браузера, я не получаю те же результаты на панели обновления ...

1 Ответ

6 голосов
/ 10 июня 2009

Я реализовал то же самое со следующей статьей. Если вам нужна дополнительная помощь, пожалуйста, дайте мне знать, я предоставлю куски кода

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

     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"]);
        }
    }
}
...