В настоящее время я восстанавливаю состояние путем повторного запроса базы данных для заполнения сетки, но страница загружается слишком медленно. Вместо этого я хотел бы сохранить viewstate в переменных сеанса и восстановить его, когда пользователь повторно посещает страницу. Как это делается? Должен ли я использовать SessionPageStatePersister? Это не проблема обратной передачи или даже перекрестная обратная передача.Как сохранить и восстановить состояние просмотра страницы сеанса в сценарии postbackback без обратной передачи?
Фон: Я использовал шаблон веб-приложения ASP.NET VS 2010 с главной страницей и несколькими страницами с вкладками. При переходе на новую вкладку состояние теряется. Вкладка «Мои клиенты» позволяет пользователю фильтровать и выбирать одного клиента из AspxGridView. Выбранный идентификатор клиента хранится в переменной сеанса и используется для отображения связанных данных клиента на других вкладках: «Контакты», «Счета-фактуры», «Задачи» и т. Д. Я могу сохранить и восстановить фильтр, сортировку и компоновку сетки клиента с помощью SaveClientLayout. Но я не знаю, как восстановить данные сетки без повторного запроса базы данных.
Я нашел this tutorial и внедрил код в разделе SessionPageStatePersister. Я скопировал код и создал SessionPageStateAdapter и файл .browser. Я смущен тем, как получить доступ к данным сеанса viewstate. Мне нужна помощь с как сохранить viewstate и восстановить его после того, как пользователь посетил несколько других страниц?
Как медленно ваша нагрузка? Есть ли лучшее решение для ускорения/страницы вашего запроса на сетку клиента? Сколько записей вы возвращаете? – Paddy
К сожалению, данные хранятся в плоских файлах Vax, доступных через драйвер Connex ODBC. Я буду искать оптимизацию, но Vax и Connx - это области, с которыми я не слишком хорошо знаком. Оптимизация может быть не такой простой, как с SQL Server, где я мог бы добавить индекс, если это необходимо. – DeveloperDan