Что может привести к потере состояния страницы при возврате в браузер? - PullRequest
1 голос
/ 02 июня 2009

У меня есть страница, которую пользователь показывает, когда хочет создать новый или отредактировать существующий документ. На странице есть два пользовательских элемента управления. Один простой DatePicker и более сложная сетка. Заполнив или отредактировав данные, он может нажать «Продолжить», после чего он попадает на страницу рецензирования, где он может решить действительно создать или обновить документ или вернуться и что-то изменить. Возвращение выполняется в JavaScript с помощью history.back ()

Теперь, когда пользователь находится в «новом» режиме и решает вернуться со страницы обзора, сетка частично теряет свое состояние просмотра, а DatePicker теряет его полностью.

С другой стороны, когда пользователь находится в режиме «редактирования» и возвращается со страницы обзора, оба элемента управления сохраняют свое состояние просмотра.

Я знаю, что браузер просто показывает кэшированную версию страницы "new / edit". Но почему разница в состоянии элементов управления и что я могу сделать, чтобы он работал в обоих случаях?

1 Ответ

2 голосов
/ 02 июня 2009

Viewstate - это, по сути, скрытое поле в форме, которое заполняется контрольными значениями, которые были отправлены обратно на сервер.

Если пользователь вводит или выбирает некоторые значения в элементах управления формы, выполняет обратную передачу, а затем нажимает кнопку возврата браузера или выполняет javascript history.back (), вы просматриваете страницу, какой она была до того, как произошла обратная передача. Поэтому варианты, сделанные пользователем до обратной передачи, не будут присутствовать на странице.

Разница между «новым» и «редактировать» заключается в том, что при «редактировании» вы извлекаете информацию из базы данных для заполнения элементов управления.

Вместо того, чтобы делать javascript history.back (), вы должны использовать Wizard, . Мастер управления предназначен именно для этой цели. Если пользователь вводит информацию в несколько этапов, переходит на страницу обзора и ему необходимо вернуться на шаг назад или вернуться к первому шагу, все сохраняется в Viewstate.

...