HTML перетаскивание сортируемых таблиц
когда-либо хотели иметь HTML-перетаскивание сортируемой таблицы, в которой вы могли бы сортировать строки и столбцы? Я знаю, что готов умереть за это. Существует много сортируемых списков, но найти сортируемую таблицу, похоже, невозможно найти.
Я знаю, что вы можете получить довольно близко с инструментами, которые сценарий.акуло.мы предоставляем, но я столкнулся с некоторыми проблемами кросс-браузера с ними.
8 ответов
Я использовал dhtmlxGrid в прошлом. Среди прочего, он поддерживает перетаскивание строк / столбцов, сортировку на стороне клиента (строка, целое число, дата, пользовательский) и поддержку нескольких браузеров.
ответ на комментарий: Нет,не нашел ничего лучше - просто перешел от этого проекта. :-)
я использовал сортируемый плагин jQuery UI с хорошими результатами. Разметка похожа на эту:
<table id="myTable">
<thead>
<tr><th>ID</th><th>Name</th><th>Details</th></tr>
</thead>
<tbody class="sort">
<tr id="1"><td>1</td><td>Name1</td><td>Details1</td></tr>
<tr id="2"><td>2</td><td>Name1</td><td>Details2</td></tr>
<tr id="3"><td>3</td><td>Name1</td><td>Details3</td></tr>
<tr id="4"><td>4</td><td>Name1</td><td>Details4</td></tr>
</tbody>
</table>
, а затем в JavaScript
$('.sort').sortable({
cursor: 'move',
axis: 'y',
update: function(e, ui) {
href = '/myReorderFunctionURL/';
$(this).sortable("refresh");
sorted = $(this).sortable("serialize", 'id');
$.ajax({
type: 'POST',
url: href,
data: sorted,
success: function(msg) {
//do something with the sorted data
}
});
}
});
Это публикует сериализованную версию идентификаторов элементов в указанный URL-адрес. Эта функция (PHP в моем случае) затем обновляет заказы элементов в базе данных.
var sort = function(event, ui) {
var url = "/myReorderFunctionURL/" + $(this).sortable('serialize');
$.post(url, null,null,"script"); // sortable("refresh") is automatic
}
$(".sort").sortable({
cursor: 'move',
axis: 'y',
stop: sort
});
работает для меня, с той же разметкой.
большинство фреймворков (Yui, MooTools, jQuery, Prototype/Scriptaculous и т. д.) возможность сортировки списка. Сделайте небольшое исследование каждого и выберите тот, который больше всего подходит вашим потребностям.
Если вы не против Java, есть очень удобная библиотека для GWT под названием GWT-DND проверьте онлайн-демо, чтобы увидеть, насколько он мощный.
как о метода sorttable? Похоже, это вполне соответствует вашим требованиям.
Он довольно прост в использовании-загрузите файл Javascript sorttable, затем для каждой таблицы, которую вы хотите сделать сортируемой, примените class= "sortable" к тегу
Если вы найдете .serialize () возвращает null в решении Дэвида Хегги, затем устанавливает значения id для TRs как "id_1" вместо просто "1"
пример:
<tr id="id_1"><td>1</td><td>Name1</td><td>Details1</td></tr>
<tr id="id_2"><td>2</td><td>Name1</td><td>Details2</td></tr>
<tr id="id_3"><td>3</td><td>Name1</td><td>Details3</td></tr>
<tr id="id_4"><td>4</td><td>Name1</td><td>Details4</td></tr>
выше будет сериализовано как "id[]=1 & id[]=2 & id[]=3"
вы можете использовать '=', '-' или '_' вместо '_'. И любое другое слово, кроме "идентификатор".