Jquery TableSorter 2.0 - 恢复排序顺序

时间:2009-11-11 22:41:14

标签: javascript jquery-ui tablesorter

所有

我正在使用JQuery TableSorter插件。该表对所选列进行了精细排序。考虑到页面加载时,不会发生排序。现在,如果表按一列排序,则会对其进行排序。现在,在单击表格外部的“恢复排序”链接后,即使它之前已经对多个coumns进行了排序,也应该恢复到初始排序顺序。我们怎样才能做到这一点?

由于

2 个答案:

答案 0 :(得分:1)

所以“没有发生排序”你的意思是你只是做

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

点击链接后,您希望表格看起来就像在此次调用之后没有完成排序?

我认为没有一种简单的方法可以做到这一点。但我提供了一个hack如何做到这一点,但要注意你的表的大小,这可能会消耗大量的浏览器内存。

我们的想法是在应用tablesorter插件之前复制表。稍后单击该链接时,只需按原样恢复该表并重新应用tablesorter。 e.g。

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或其他任何工作)

答案 1 :(得分:0)

非常感谢..如果页面上有一个表格,那就像魅力一样。如果我有嵌套的标签,每个标签都有一个表,这似乎只适用于最后一个标签中的表。

以下是生成嵌套JQuery UI选项卡时必须生成此JS的PHP代码:

                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>";

有关解决这个问题的任何想法吗?

由于