2014-01-21 64 views
1

我使用tablesorter爲我的大部分數據。它工作的很好,但我使用tablesorterPager插件得到了一個奇怪的行爲。TableSorterPager計數器重新排序後

當表被創建並調用tablesorter時,分頁器顯示正確的信息,我可以瀏覽不同的頁面。
但是,當我使用排序功能(在使用分揀機時很有用:-))時,尋呼機告訴我只有一個頁面,而我無法看到其他頁面。

這裏是我使用的JS代碼。我與官方文檔以及我在網上發現的幾乎所有內容進行了比較,並且我無法真正看到可以解釋此行爲的差異。

這裏是調試輸出:

Building cache for 20 rows:,1ms 
Evaling expression:var sortWrapper = function(a,b) {var e0 = (a[2] == b[2] ? 0 : (a[2] === null ? Number.POSITIVE_INFINITY : (b[2] === null ? Number.NEGATIVE_INFINITY : (a[2] < b[2]) ? -1 : 1)));if(e0) { return e0; } else { return a[8]-b[8];}; return 0; }; ,0ms 
Sorting on 2,0 and dir 0 time:,1ms 
Rebuilt table:,2ms 

感謝您事先的任何線索。

回答

0

我猜你正在使用原始tablesorter(http://tablesorter.com)。不要在update之後觸發appendCache,特別是使用尋呼機插件。

appendCache方法將所有表格行添加回表格中。因此,舉例來說,如果你想一行或多行添加到一個表,用尋呼機初始化,你會做以下幾點:

$('table') 
    .trigger('appendCache') 
    .append($myNewRows) 
    .trigger('update') 
    .trigger('sorton', [sorting]); 

我可以建議你看看我的fork of tablesorter(不要忘記更新尋呼機也)。您不需要對初始化代碼進行任何更改。如果您需要在表格中添加一行或多行,則可以使用addRows method

var $row = $('<tr>...</tr>'), 
    resort = true, // resort the table using the current sort 
    callback = function(table){ 
     console.log('rows added', $row); 
    }; 

$('table') 
    .find('tbody').append($row) 
    .trigger('addRows', [$row, resort, callback]); 
+0

謝謝。我用你的替換原來的tablesorter。我只需要檢查我的翻譯,但尋呼機和排序都很好(甚至我的行刪除和添加:-)) –