ASP.net AJAX перетаскивание?

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

Пока что нашел два решения:

  • ReorderList из набора инструментов Ajax Control Toolkit , который требует небольшой ручной работы, чтобы убедиться, что изменения сохраняются в базе данных, и который не поддерживает перетаскивание между списками.
  • RadGrid от Telerik , который делает все что я хочу, но по цене далеко далеко за пределами моего бюджета.

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

Кстати, Target Framework - 3.0.

Ответов (4)

Решение

Плагин Mootools sortables делает именно это, и, что самое главное, он бесплатный;)

http://demos.mootools.net/Sortables

Расширитель управления ajax от Raj Kaimal:

http://weblogs.asp.net/rajbk/Contents/Item/Display/517

Работает как часы.

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

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

Я оценил сетку Telerik, а также версию Infragistics . В конце концов, мы применили подход, аналогичный тому, что предлагали tags2k. Мы просто написали наш собственный javascript и вызвали .Net PageMethods для выполнения работы на стороне сервера.

Мы обнаружили, что оба «нестандартных» решения раздуты. Если вы не разместите разбиение по страницам примерно с 20 записями в строке, они действительно будут тормозить с точки зрения производительности.