ScriptManager.AddHistoryPoint — страница сначала отображает исходное состояние страницы, а затем сохраненное состояние

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

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

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

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


person kristian    schedule 11.02.2010    source источник


Ответы (1)


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

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

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

person Florim Maxhuni    schedule 28.07.2010