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

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

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

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

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

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


person juan    schedule 26.02.2009    source источник
comment
(Дайте мне знать, если это неясно, я пытался описать ситуацию как можно лучше, а английский не является моим основным языком)   -  person juan    schedule 26.02.2009


Ответы (3)


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

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

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

person fmsf    schedule 26.02.2009
comment
Это помогает, спасибо... Думаю, я выберу это, это сводит меня с ума - person juan; 26.02.2009

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

person reinierpost    schedule 26.02.2009

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

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

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

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

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

person Gregory A Beamer    schedule 27.02.2009