JQuery DataTables и TableSorter вместе - PullRequest
4 голосов
/ 07 июня 2011

У меня было это требование разбивать на страницы данные, отображаемые в таблице, и извлекать их с помощью вызовов ajax - это я выполнил с помощью плагина dataTables со следующей конфигурацией -

bServerSide : true;
sAjaxSource : <ajax_source>
bPaginate : true,
bSort:false,
bFilter:false

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

 "fnServerData": function(sSource, aoData, fnCallback){
                    $.ajax({
                        "dataType": "json",
                        "contentType": "application/json",
                        "type" : "GET",
                        "url" : sSource,
                        "data" : aoData,
                        "success" : function (jsonData){
                            fnCallback(jsonData);
                            $("#companies").tablesorter();
                        }
                    });
               }

Но, к моему удивлению, даже если сортировка на первой странице работает нормально, как только я перехожу на последующие страницы, как только я щелкаю по заголовку столбца, он начинает показывать все строки на предыдущей странице как хорошо, что нежелательно.

Может кто-нибудь объяснить, что здесь может пойти не так.

Редактировать: $("#companies").trigger("update"); сделал трюк

1 Ответ

0 голосов
/ 08 июня 2011

Сработало со следующим изменением - вывод инициализации TableSorter

 $("#companies").tablesorter();

и запуск обновления после каждого вызова ajax.

"success" : function (jsonData) {
    fnCallback(jsonData);
    $("#companies").trigger("update");
}
...