2011-07-22 2 views
2

Мне нелегко обернуть голову вокруг того, как объединить jQuery/clientside javascript и asp.net и всю модель жизненного цикла страницы. Возьмем конкретный пример.Как сделать передовые интерактивные средства управления сайтом asp.net с помощью jquery?

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

List 1 - a list of search results 
List 2 - an empty list 
List 3 - an empty list 

Теперь я хочу возможность перетащить результат поиска из списка 1 в списке 2 или 3, кроме того, я хотел бы возможность перетаскивания результат поиска из списка 2 в 3, или список 3 в 2.

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

Если вы просто сделаете обратную передачу, представление состояния элементов управления serveride переопределит значения jQuery, добавленные к элементам управления на стороне клиента, и когда страница будет отображаться снова, все будет забыто.

Как вы можете связать весь клиент вместе с сервером?

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

ответ

0

Проблема заключается в том, что у вас есть состояние в вашем DOM, поддерживаются скриптами JQuery, но вы теряете это состояние в обратном направлении на сервер.

Чтобы сохранить эту информацию о состоянии, вы должны были бы поместить ее в скрытое поле (или в файл cookie, или даже в автономное хранилище HTML5), но лучшим решением было бы избежать обходных сообщений в целом и позволить вашим элементам управления взаимодействовать с сервером через AJAX звонки. Тогда ваше клиентское состояние сохраняется даже при взаимодействии с сервером.

+0

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

+0

Я более или менее пришел к выводу, что иметь дело с viewstates и webforms - это боль в ***, когда вы начинаете делать больше «причудливых» вещей, я начал переносить свое приложение на asp.net mvc 3 :) – thmsn

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

  • Нет связанных вопросов^_^