Pull to refresh

Плагин jQuery для сортировки таблиц: TableSorter.js. Как добиться постраничной навигации?

Reading time 4 min
Views 52K

Вступление


При разработке одного проекта мне пришлось решать проблему с сортировкой данных в таблице. Не хотелось для этого использовать PHP, так как эффект теряется при перезагрузке страницы. Вот и наткнулся я на официальный сайт jQuery-плагина "TableSorter.js" — www.tablesorter.com. Немного покопавшись в англоязычной документации я с радостью обнаружил в новостях сайта ссылку на русскоязычный сайт: www.tablesorter.ru.

В принципе там всё предельно ясно было описано и я быстро понял как всё работает…
Но было в документации одно важное упущение: недостаточно описан принцип работы постраничной навигации, да и нужные файлы не выложены. А мне как-раз нужна была эта функция, так как в моих таблицах было минимум по 150 строк. Пришлось самому решить эту проблему.

Необходимые материалы


Постраничная навигация


Сейчас я покажу вам как настроить постраничную навигацию с помощью этого плагина — на самом деле решение довольно простое, а вот на поиск этого решения у меня ушло немало времени.

Разобрался я с этой проблемой только тщательно изучив код данного там примера и скачав все рисунки и нужный мне код с кода самой страницы.

Картинки я собрал в отдельный архив, который вы сможете использовать.

Подключаем в теге HEAD нашей страницы все наши скрипты и стили. У меня они выглядели так:
    <link type="text/css" rel="stylesheet" href="bluetable/style.css">
    <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
    <script type="text/javascript" src="/js/jquery.metadata.js"></script>
    <script type="text/javascript" src="/js/jquery.tablesorter.js"></script>
    <script type="text/javascript" src="/js/jquery.tablesorter.pager.js"></script>


Здесь же, в теге HEAD, пишем javascript-код, который и заставит нашу таблицу работать правильно:

    <script type="text/javascript">
$(document).ready(function() { 
    $("table") 
    .tablesorter({widthFixed: true, widgets: ['zebra']}) 
    .tablesorterPager({container: $("#pager")}); 
});
    </script>


Далее распаковываем архив с картинками в папку /images/table

Наша таблица будет выглядеть следующим образом:

<table cellspacing="1" class="tablesorter">              
    <thead>  
        <tr> 
             <th>имя</th> 
             <th>фамилия</th> 
             <th>возраст</th> 
             <th>итого</th> 
             <th>скидка</th> 
             <th>дата</th> 
         </tr>  
    </thead>  
    <tbody>  
        <tr> 
             <td>петр</td> 
             <td>сидоров</td> 
             <td>28</td> 
             <td>$9.99</td> 
             <td>20%</td> 
             <td>jul 6, 2006 8:14 am</td> 
         </tr>  
        <tr> 
             <td>иван</td> 
             <td>хайкин</td> 
             <td>33</td> 
             <td>$19.99</td> 
             <td>25%</td> 
             <td>dec 10, 2002 5:14 am</td> 
         </tr>  
        <tr> 
             <td>николай</td> 
             <td>котов</td> 
             <td>18</td> 
             <td>$15.89</td> 
             <td>44%</td> 
             <td>jan 12, 2003 11:14 am</td> 
         </tr>  
        <tr> 
             <td>борис</td> 
             <td>арнов</td> 
             <td>45</td> 
             <td>$153.19</td> 
             <td>44%</td> 
             <td>jan 18, 2001 9:12 am</td> 
         </tr>  
        <tr> 
             <td>борис</td> 
             <td>егоров</td> 
             <td>22</td> 
             <td>$13.19</td> 
             <td>11%</td> 
             <td>jan 18, 2007 9:12 am</td> 
         </tr>  
    </tbody>  
</table> 


И теперь подключаем те самые наши элементы навигации, которые в документации не указаны (без них будут ошибки на странице):

<div id="pager" class="pager" style="top: 652px; position: absolute; "> 
	<form> 
		<img src="/images/table/first.png" class="first"> 
		<img src="/images/table/prev.png" class="prev"> 
		<input type="text" class="pagedisplay"> 
		<img src="/images/table/next.png" class="next"> 
		<img src="/images/table/last.png" class="last"> 
		<select class="pagesize"> 
			<option selected="selected" value="10">10</option> 
			<option value="20">20</option> 
			<option value="30">30</option> 
			<option value="40">40</option> 
		</select> 
	</form> 
</div>


Всё! Теперь наша таблица работает исправно!
Tags:
Hubs:
If this publication inspired you and you want to support the author, do not hesitate to click on the button
+21
Comments 31
Comments Comments 31

Articles