Как вы делаете расширенные интерактивные серверные элементы управления asp.net с помощью jquery? - PullRequest
2 голосов
/ 23 июля 2011

Мне трудно думать, как объединить jQuery / clientide javascript и asp.net и модель жизненного цикла всей страницы. Давайте рассмотрим конкретный пример.

У меня есть следующие 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, проблема возникает тогда, когда настало время отправки, отправка может быть сделана, когда вы фактически отбрасываете элемент, или может быть выделенная кнопка для выполнения отправки.

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

Как вы работаете, связывая всю клиентскую часть с серверной?

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

Ответы [ 2 ]

0 голосов
/ 23 июля 2011

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

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

0 голосов
/ 23 июля 2011

Вы можете зарегистрировать клиентский скрипт из своего контроля

Это может начать вас на пути:

http://weblogs.asp.net/asmith/pages/25465.aspx

...