Плагин jQuery Tablesorter Pager и обновление Ajax - PullRequest
0 голосов
/ 23 мая 2011

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

$(.tablesorter').trigger("update");

при обновлении таблицы не обновляет пейджер, который по-прежнему показывает предыдущее количество строк / страниц.

Я использую:

    //init tablesorter
    $('#tblCustomers').tablesorter({
            headers: { 0: { sorter: false}},
            sortList: [[5,1]]               
    }).tablesorterPager({container: $("#pager")});
    //search listener
    $('input.search').change(function() {
                 $.post('search.php', { 'keyword' : $(this).val() }, function(data) {
                        $('#tblCustomers tbody').html(data);
                        $('#tblCustomers').trigger('update');
                 }
    });

Совет, пожалуйста ...

Ответы [ 3 ]

2 голосов
/ 16 апреля 2013

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

function tableUpdated() {
$('#pager *').unbind('click');
$("#table") 
.tablesorter({
    // zebra coloring
    widgets: ['zebra']
}) 
.tablesorterPager({container: $("#pager")}); 
}

Надеюсь, это поможет, счастливого кодирования!

0 голосов
/ 24 мая 2011
function tableUpdated() {
    $('#tblCustomers').tablesorter({
        headers: { 0: { sorter: false}},
        sortList: [[5,1]]               
    }).tablesorterPager({container: $("#pager"), positionFixed: false});
}   

$(document).ready(function() {
   $('input.search').change(function() {
      $.post('search.php', { 'data': data } , function(data) {
        tableUpdated();
      });
   });  

Оказывается, решение состоит в том, чтобы переместить инициализацию таблицы в отдельную функцию и вызвать ее в успешной части $ .post

После нескольких часов чтения результатов Google, это единственноевещь, которая работала в моем случае.

0 голосов
/ 23 мая 2011
  1. Убедитесь, что вы обновляете свой контейнер после обновления таблицы базы данных.
  2. . Помните о кеше, я бы добавил строку произвольного запроса с помощью search.php (например, search.php? Cachebuster =arandomnumberhere) для предотвращения кеширования страниц.

Существует несколько способов управления кешем.Вы можете настроить его на сервере через htaccess, случайное число, упомянутое ранее и т. Д. И т. Д.

...