Всплывающие окна со сложной функциональностью с использованием jQuery

Я использую jQuery для имитации всплывающего окна, где пользователь выбирает серию фильтров, которые я надеюсь использовать для повторной привязки ListView в исходном окне.

«Всплывающее окно» открывается с помощью запроса ajax, и содержимое на самом деле представляет собой другой файл aspx (визуализированный вывод вводится в div, который действует как всплывающее окно).

У меня есть еще один ListView в этом всплывающем окне с разбивкой на страницы.

Моя проблема в том, что, поскольку всплывающее окно на самом деле представляет собой html-контент внутри div на той же странице, когда я пытаюсь разбить на страницы, вся страница возвращается и заменяется aspx с фильтрами.

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

Ответов (3)

Решение

$ ("div.yourthingie"). hide ();

Скроет часть, которую вы хотите показать :) Вместо того, чтобы генерировать всплывающее окно на лету, оставьте небольшую часть уже сделанной и скройте ее в начале, когда вам нужно показать, отобразить и добавить необходимую информацию.

Надеюсь, это поможет

Либо избавьтесь от «корки» HTML и просто создайте <div> с его содержимым, либо используйте IFRAME.

Во-первых, давайте подумаем, что происходит. Отправляя исходную страницу, вы совершаете «обычную» поездку с запросом / ответом, чтобы получить код. На странице есть бит JQuery AJAX, который запускает то, что по сути является модальным диалоговым окном. Желаемый эффект заключается в том, что пользователь играет с новой страницей, пока не выяснит свои фильтры и не отправит обратно. Проблема в том, что эта «модальная страница» теряет информацию, когда кто-то разбивает ее на страницы.

Теоретически решение этой проблемы довольно простое. Вы должны сохранить «фильтры» на всплывающей странице, чтобы их можно было повторно отправить вместе с информацией о разбиении на страницы. ИЛИ вам нужно кэшировать набор результатов, пока пользователь разбивает на страницы.

Что бы я сделал, чтобы решить эту проблему, так это создать статическую страницу с установленными «фильтрами» и устранить изломы AJAX отдельно от публикации страницы на родительской странице. После того, как все биты AJAX работают правильно, я бы связал их с подпрограммой всплывающих окон и убедился, что разбивка на страницы по-прежнему не вызывает проблем. Последняя проблема - это создание процедуры JavaScript, которая отправляет обратно на родительскую страницу и позволяет родительской странице отправлять свои биты JQuery обратно на сервер.

Я не уверен в части уравнения HTML DIV, и я думаю, что вы можете решить проблему без этого решения. Фактически, я считаю, что вы можете создать «модальную всплывающую» страницу без вызова AJAX, если возможно: а) отправить фильтры для применения через строку запроса или б) подделать отправку формы на вторую страницу. Строка запроса - более простой вариант, но она предоставляет некоторую информацию. Подделать отправку формы в целом не так уж и сложно, но может возникнуть проблема со всплывающим окном.

Я просто выдвигаю некоторые идеи, но надеюсь, что это что-то подстегнет вас.