2009-11-11 191 views
0

全部,Jquery TableSorter 2.0 - 恢復排序

我正在使用JQuery TableSorter插件。該表對所選列進行排序。考慮到頁面加載時,不會進行排序。現在,如果表格按一列進行排序,則排序。現在,單擊表格外部的「恢復排序」鏈接時,即使排序了多個coumns,tablesorter也應該恢復爲初始排序順序。我們怎樣才能做到這一點?

感謝

回答

1

因此,通過「沒有排序發生」你的意思是,你只是做

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

和鏈接上點擊後,你想要的表看起來像緊接在該打電話沒有排序完成?

我不認爲有一個簡單的方法來做到這一點。但我提供了一個黑客如何做到這一點,但要注意根據你的表的大小,這可能會消耗大量的瀏覽器內存。

想法是在應用tablesorter插件之前複製表格。稍後點擊鏈接時,只需恢復表格並重新應用tablesorter即可。例如

var tablebackup; 
$(document).ready(function() { 
    tablebackup = $("#myTable").clone(); 
    $("#myTable").tablesorter(); 
}); 

function resetTable() { 
    tablebackup.clone().insertAfter("#myTable"); 
    $("#myTable").remove(); 
    $("#myTable").tablesorter(); 
} 

檢查這一個完整的工作示例http://jsbin.com/ujiko(沒有CSS或什麼,但作品)

0

多謝。它就像一個魅力,如果有在頁面上一個表。如果我在每個表中嵌套了一個表格,這似乎只適用於最後一個表格中的表格。

以下是PHP代碼中,我有當產生嵌套JQuery的UI選項卡來產生這個JS飛:

   echo '<script type="text/javascript">'; 
       echo 'function resetTable() {'; 
       echo 'tablebackup.clone().insertAfter("#table'.$i.'");'; 
       echo '$("#table'.$i.'").remove();'; 
       echo '$("#table'.$i.'").tablesorter({widthFixed: true, widgets: [\'zebra\']}) 
         .tablesorterPager({container: $("#pager'.$i.'")});'; 
       echo '}'; 

       echo '$(document).ready(function() {'; 
       echo "$('#fragment-2').tabs();"; 
       echo 'tablebackup = $("#table'.$i.'").clone();'; 
       echo '$("#table'.$i.'").tablesorter({widthFixed: true, widgets: [\'zebra\']}) 
         .tablesorterPager({container: $("#pager'.$i.'")});';      
       echo "});"; 
       echo "</script>"; 

上解決這個任何想法?

感謝