ScriptManager.AddHistoryPoint - страница отображает сначала исходное состояние страницы, затем сохраненное состояние - PullRequest
1 голос
/ 11 февраля 2010

Я использую UpdatePanel и метод ScriptManager AddHistoryPoint, чтобы сохранить состояние моей страницы в истории браузера. Страница представляет собой простую страницу поиска / результатов с двумя состояниями:

  • СОСТОЯНИЕ 1 - отображение поисковых фильтров
  • СОСТОЯНИЕ 2 - показ результатов поиска

Когда я возвращаюсь на страницу (нажав кнопку «Назад» в моем браузере), на странице отображается начальное состояние (СОСТОЯНИЕ 1), но затем панель обновления отправляется обратно, и страница переходит к результатам поиска (СОСТОЯНИЕ 2) .

Это выглядит неопрятно, и мне кажется, что я что-то здесь упускаю в своей реализации. Как я могу сказать странице либо просто загрузить сохраненное состояние, либо скрыть содержимое страницы, пока сохраненное состояние не будет загружено?

1 Ответ

0 голосов
/ 28 июля 2010

как я знаю в событии ScriptManager OnNavigateHistory, вы должны обработать этот пример, когда вы добавляете HistoryPoint для состояния один и два идентичных идентификатора ключа, только значение отличается, и тогда OnNavigateHistory основывается на e.State ["YourKey"], вы принимаете решение в состоянии остаться. пример

string indexString = e.State["YourKey"]; 
    if (String.IsNullOrEmpty(indexString)) { 
         SetToStateOne();
    }
    else { 
        int index = int.Parse(indexString); 
        SetToStateTwo();
    }

Извините за мой плохой английский

...