Сортировка таблицы, при помощи js
Подскажите пожалуйста работающий способ, ну или вдруг кто сталкивался.
Требуется отсортировать таблицу, в которой имеются rowspan="2" и rowspan="3". Всякие tablesorter и jqgrid не умеют работать с rowspan и полностью нарушают структуру таблицы. Может кто подскажет в каком направлении копать хотябы, либо идею как - это можно реализовать. Заранее спасибо. |
то есть у вас есть несколько подряд идущих строк с общей ячейкой, и эту группу из 2-3х строк надо двигать единым блоком? а по какому признаку определять надо сортировку?по-какой из строк, если в них содержатся различные значения? или может быть надо их разделить, скопировав общее для них значение ячейки? или еще что-то сделать?
с точки зрения алгоритма, есть куча вариантов сортировки такой таблицы, и поэтому неясно что именно с ней надо сделать. это не так очевидно, не зная структуру, и смысловую нагрузку таблицы попробуйте написать сами с нуля, используя DOM. сам факт перемещения строк таблицы реализуется нетрудно, если вы сможете ответив на предыдущие вопросы понять, как именно вам надо манипулировать таблицей |
Как вариант, таблицу можно превратить в одномерный массив если в ячейки с данными вставить ДИВы и дать им ИДшники типа
<div id='data_N'>...</div> Где N это номер попорядку. Тогда все ровспаны и колспаны не смогут влиять на сортировку. Цитата:
|
Структура таблицы имеет похожий вид(на практике 25 строк и больше столбцов)
Необходима сортировка по 1 и 4 столбцу соответственно. Сортировка по 2 и 3 не столь важна. Соответственно сортироваться должны группы(1 и 10 в данном случае). Сортировка соответственно будет производиться пользователем при клике на "Название 1" или "Название 4" <<table border="1"> <thead> <tr> <th> Название 1 </th> <th> Название 2 </th> <th> Название 3 </th> <th> Название 4 </th> </tr> </thead> <tbody> <tr> <td rowspan="2"> Группа 1 </td> <td> Элемент 2 </td> <td> Элемент 3 </td> <td rowspan="2"> Элемент 4 </td> </tr> <tr> <td> Элемент 2.2 </td> <td> Элемент 3.2 </td> </tr> <tr> <td rowspan="2"> Группа 10 </td> <td> Элемент 20 </td> <td> Элемент 30 </td> <td rowspan="2"> Элемент 40 </td> </tr> <tr> <td> Элемент 20.2 </td> <td> Элемент 30.2 </td> </tr> </tbody> </table> |
Prizrak177, т.е. дальше ты предлагаешь действовать нам? :)
|
ksa,
ji, Каким бы алгоритмом Вы реализовали подобную сортировку? |
Цитата:
- выбрал бы данные из ДИВов - запомнил бы номер/ИДшник ДИВов Т.о. можно сделать массив типа data[i][1]='значение' data[i][2]='ИДшник_ДИВа' - Далее отсортировал бы этот массив по "значению" - Прошелся бы циклом по нему и менял бы значения i-того ДИВа с ИДшником "старого" ДИВа А вот если сортировать целиком строки - то "нумеровать" нужно уже не <td>, а <tr>. И запоминать придётся ИДшник всей строки. Тогда "двигать" строку целиком будет продуктивнее чем "переписывать" все её содержимое... |
Я не предлагаю действовать Вам, я полностью описываю ситуацию.
Мне больше нравится возможность двигать строки. Правильно ли я понимаю, что я каждой строке присваиваю id, затем в зависимости от выбора столбца, сортирую эти строки по возрастанию? Как то слишком просто.... |
Цитата:
Но есть и "осложнения". :) При сортировке именно строки целиком ровспан нужно учитывать обязательно. Т.о. при сортировке придется двигать несколько строк сразу. Количество строк можно всегда узнать из атрибута ровспан у ячейки. А уш запоминать их ИДшники или просто их количество это уже детали. |
Цитата:
|
Часовой пояс GMT +3, время: 13:05. |