Главная » Полезные статьи » Разное » Плагин jQuery для сортировки HTML-таблиц
Распечатать статью

Плагин jQuery для сортировки HTML-таблиц

Tablesorter — это плагин для JavaScript-библиотеки jQuery, который позволяет сортировать HTML-таблицы, включающие теги thead и tbody, без перезагрузки страницы на стороне клиента. Tablesorter может анализировать и отсортировать различные типы данных, включая связанные данные в ячейке. Плагин имеет множество функций, включая:

  • Сортировку по нескольким столбцам таблицы.
  • Анализ сортируемых значений, в том числе URL-адресов, чисел, валют, IP-адресов, дат (в различных форматах), времени. Кроме того вы можете легко расширить этот функционал, добавив свои типы данных.
  • Поддержка HTML-атрибутов rowspan и colspan в th элементах таблицы.
  • Поддержка «скрытой» многокритериальной сортировки (например, выполняется первоначальная сортировка по одному из критериев, а затем по алфавиту внутри отсортированных групп).
  • Расширяемость с помощью виджетов.
  • Поддержка многими популярными браузерами: IE 6.0+, FF 2+, Safari 2.0+, Opera 9.0+.
  • Небольшой размер исходного кода (всего 12-13 КБ).

Подключение плагина

Для использования плагина необходимо включить файл библиотеки jQuery и самого плагина с помощью тега script в заголовок (head) страницы:

1 <script type="text/javascript" src="jquery-latest.js">
2 </script>
3 <script type="text/javascript" src="jquery.tablesorter.js">
4 </script>

Плагин Tablesorter работает со стандартными HTML-таблицами. Однако, существует одно ограничение — вы должны использовать в таблице теги thead и tbody:

01 <table id="myTable" class="tablesorter">
02   <thead>
03   <tr>
04     <th>Фамилия</th>
05     <th>Имя</th>
06     <th>E-mail</th>
07     <th>Долг</th>
08     <th>Веб-сайт</th>
09   </tr>
10   </thead>
11   <tbody>
12   <tr>
13     <td>Смит</td>
14     <td>Джон</td>
15     <td>jsmith@gmail.com</td>
16     <td>$50.00</td>
17     <td>http://www.jsmith.com</td>
18   </tr>
19   <tr>
20     <td>Бах</td>
21     <td>Франк</td>
22     <td>fbach@yahoo.com</td>
23     <td>$40.00</td>
24     <td>http://www.frank.com</td>
25   </tr>
26   <tr>
27     <td>Доу</td>
28     <td>Джейсон</td>
29     <td>jdoe@hotmail.com</td>
30     <td>$100.00</td>
31     <td>http://www.jdoe.com</td>
32   </tr>
33   <tr>
34     <td>Конвей</td>
35     <td>Тим</td>
36     <td>tconway@earthlink.net</td>
37     <td>$50.00</td>
38     <td>http://www.timconway.com</td>
39   </tr>
40   </tbody>
41 </table>

Примените функцию сортировки к таблице после загрузки страницы:

1 $(document).ready(function(){
2   $("#myTable").tablesorter();
3 });

В результате получится сортируемая таблица, наподобие этой:

Фамилия Имя E-mail Долг Веб-сайт
Смит Джон jsmith@gmail.com $50.00 http://www.jsmith.com
Бах Франк fbach@yahoo.com $40.00 http://www.frank.com
Доу Джейсон jdoe@hotmail.com $100.00 http://www.jdoe.com
Конвей Тим tconway@earthlink.net $50.00 http://www.timconway.com

Нажмите на заголовок любого столбца и вы увидите, что теперь таблица стала сортируемой. Перед вызовом функции tablesorter() вы можете сконфигурировать опции сортировки для конкретной таблицы. Для этого в функцию tablesorter() необходимо передать соответствующие аргументы. Например, для сортировки первого и второго столбца в порядке возрастания:

1 $(document).ready(function(){
2   $("#myTable").tablesorter({sortList: [[0,0], [1,0]]});
3 });

Заметьте, что плагин автоматически определяет большинство форматов данных, в том числе числа, даты, IP-адреса.

Настройка плагина

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

Свойство Тип Значение по умолчанию Описание
sortList Array null Массив, задающий столбцы для сортировки и её направление: [[columnIndex, sortDirection], ...], где columnIndex — индекс столбца в таблице (если считать слева направо, первый столбец имеет индекс 0), а sortDirection принимает значение 0 для сортировки по возрастанию и 1 для сортировки по убыванию. Пример правильной настройки (для сортировки первого и второго столбца по возрастанию): [[0,0],[1,0]]
sortMultiSortKey String shiftKey Клавиша, используемая для выбора более чем одного столюца для сортировки. По умолчанию клавиша Shift. Параметр может принимать значения: ctrlKey, altKey.
textExtraction String Or Function simple Определяет метод извлечения данных из ячеек для сортировки. Возможные значения "simple" и "complex". Используйте значение "complex", если внутри ячеек имеется HTML-разметка:

1 <td><strong>
2 123 Main Street
3 </strong></td>

При значении "complex" сортировка может замедлиться на больших таблицах, поэтому рационально написать собственную функцию извлечения текста, например:

1 var myTextExtraction = function(node)
2 {
3   // извлекает данные из разметки и возвращает их
4   return node.childNodes[0].innerHTML;
5 }
6 $(document).ready(function(){
7   $("#myTable").tableSorter( {textExtraction: myTextExtraction} );
8 });
headers Object null Объект с настройками для отдельных столбцов:

1 headers: { 0: { option: setting }, ... }

Например, чтобы отменить сортировку первых двух столбцов таблицы, необходимо указать:

1 headers: { 0: { sorter: false}, 1: {sorter: false} }
sortForce Array null Используется для добавления принудительной сортировки, которая будет действовать постоянно вместе с сортировкой, определенной пользователем.
widthFixed Boolean false Включает фиксированную ширину в столбцах таблицы. Это особенно полезно при использовании плагина Pager. Для работы этой функции необходим плагин jQuery dimension.
cancelSelection Boolean true Определяет, следует ли предотвращать выделение текста в заголовках таблицы th. Заголовки становятся похожими на кнопки.
cssHeader String "header" Стиль CSS, используемый для оформления заголовков несортируемых столбцов таблицы. Пример:

01 th.header {
02   background-image: url(../img/small.gif); 
03   cursor: pointer;
04   font-weight: bold;
05   background-repeat: no-repeat;
06   background-position: center left;
07   padding-left: 20px;
08   border-right: 1px solid #dad9c7;
09   margin-left: -1px;
10 }
cssAsc String "headerSortUp" Стиль CSS, используемый для оформления заголовков столбцов таблицы при сортировке по возрастанию. Пример:

1 th.headerSortUp {
2   background-image: url(../img/small_asc.gif);
3   background-color: #3399FF;
4 }
cssDesc String "headerSortDown" Стиль CSS, используемый для оформления заголовков столбцов таблицы при сортировке по убыванию. Пример:

1 th.headerSortDown {
2   background-image: url(../img/small_desc.gif);
3   background-color: #3399FF;
4 }
debug Boolean false Дает возможноть вывода отладочной информации на экран. Полезно в процессе разработки.
Последнюю версию плагина, примеры его работы и настройки, а также полезные сопутствующие плагины можно найти на сайте разработчика: http://tablesorter.com
Источник:   w3pro.ru
Вы можете оставить комментарий, или обратную ссылку на Ваш сайт.

Оставить комментарий

Похожие статьи