2012-05-15 5 views
1

Наших клиентов это требование:Можно ли сохранить и восстановить полную страницу aspx?

  • поиска страница должна быть показана в диалоге модального (IFrame), когда пользователь нажимает на значок поиска на форме
  • Пользователь может искать, просматривать его результаты поиска, и выберите запись
  • Теперь модальные скрытую и пользователь просматривает запись
  • Когда пользователь нажимает значок поиска снова, модальный диалог появляется снова

Теперь часть моего вопроса:

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

Я предпочитаю просто сохранить полную страницу и восстановить ее, когда пользователь снова хочет просмотреть страницу поиска. Но я не знаю, возможно ли это.

Я действительно не хочу сохранять все фильтры поиска и выполнять поиск снова, когда пользователь переходит на страницу поиска, потому что существует> 100 поисковых фильтров и поиск может занять время.

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

Спасибо за все предложения по этому вопросу.

+0

Разве это не означает, что кнопка браузера назад должна делать? Я бы предложил вам сделать форму GET и использовать то, что предложил LesterDove. – Ramesh

+0

У меня нет чувства, что ты понимаешь мой вопрос. Идея такова: когда пользователь нажимает на значок поиска, он получает модальное диалоговое окно со страницей поиска. Когда он выбирает запись в результатах поиска, модальный диалог закрывается, и пользователь просматривает запись. Когда пользователь снова нажимает на значок поиска, модальный диалог отображается снова. Когда пользователь переходит на другую страницу и возвращается сюда, он хочет видеть ту же страницу поиска, когда он нажимает кнопку просмотра. Это не имеет никакого отношения к возвращению и вперед. –

ответ

2

Это звучит, как вы могли бы использовать декларацию @OutputCache страницу .NET с VaryByParam в набор атрибутов (если поиск PARAMS являются пройти через строку запроса, по крайней мере.)

+0

также должен работать с параметрами сообщения. – Nicholas

+1

Идея такая же, но предложила бы обернуть эту функциональность в пользовательский элемент управления, чтобы, если какая-либо пользовательская информация на странице не будет кэшироваться и отображаться другому пользователю. – Ramesh

+0

Хм, у меня нет параметров запроса. Модальный диалог - это форма поиска с множеством фильтров для пользователя (также слишком много для запроса), и эта форма также показывает результаты поиска. Когда пользователь выбирает запись из результатов поиска, модальный диалог скрывается и отображается запись. Когда пользователь снова нажимает значок поиска, модальный диалог появляется снова. –

0

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

0

Почему бы вам не сохранить результаты поиска в переменной session или viewstate?

Если бы я был в вашем положении (и не может сохранить результаты поиска в переменной сеанса), я бы:

  1. диалоговый модальный свою собственную страницу.
  2. Download the page на сервере (сервер подключается к модальной странице диалога и загружает содержимое).
  3. Храните загруженную страницу где-нибудь (возможно, сеанс, но, возможно, базу данных или в файловой системе).
  4. Добавить iFrame в модальный диалог (убедитесь, что вы добавили поле имени или оно не будет работать в FF).
  5. Задайте источник iFrame в модальном диалоговом окне для сохраненных результатов поиска.

Следует отметить, что это решение будет иметь проблемы, если в результатах поиска используются серверные элементы управления, зависящие от браузера (элементы управления, которые возвращают разные HTML на основе типа браузера, указанного на сервере).

Если вы хотите, iFrame можно заменить div, если вы установите внутренний html div на внутренний html тегов тела на сохраненной странице.

Я считаю, что есть также встроенная в ASP функция, которая получит визуализированный текст страницы, но я не помню, как она называется.

Смежные вопросы