TableSorter初始可见行数问题

时间:2014-10-13 13:17:00

标签: jquery tablesorter

昨天我发现了 TableSorter ,所以很明显我还不太了解它,但是,使用几个演示并阅读文档,我可以在表中设置一个工作排序,直到我发现< strong>寻呼机小工具。

并不是它不起作用,它只是不起作用,因为我期望它工作。我的大多数实现都基于作者提供的this demo

我刚刚删除了 widthFixed 选项和zebra小部件(因为我没有看到它在运行中)并定义了我的四个列中的两个不可排序。我还略微修改了寻呼机小部件的输出文本:

$( document ).ready( function() {

    $( 'table' ).tablesorter({

        theme: 'bootstrap',
        headerTemplate: '{content}{icon}',
        widgets: [ "uitheme" ],
        headers: {
            3:{sorter: false},
            4:{sorter: false}
        }
    }).tablesorterPager({

        container: $(".ts-pager"),
        saveSort : false,
        output: '{startRow} to {endRow} ({totalRows})'
    });

});

此脚本作为外部文件放在HTML末尾</body>附近。与jQuery插件的大多数用法不同,因为我使用了所有页面共用的一个页脚文件(服务器端编程的一部分),而不是最后添加脚本,我已经在表之后添加它们进行排序,按以下顺序:

<script src="/public/assets/projectfolder/js/jquery.tablesorter.min.js"></script>
<script src="/public/assets/projectfolder/js/jquery.tablesorter.widgets.min.js"></script>
<script src="/public/assets/projectfolder/js/jquery.tablesorter.pager.min.js"></script>

现在,我认为那些不起作用的东西,但可能是我的愚蠢,是。

  • 刷新后记住的寻呼机选项

我认为这是一个bug,直到找到saveSort选项并在tableSortPager选项中将其设置为false。然而,这并没有像我期望的那样起作用,我在页面大小下拉列表中选择的内容在刷新后保留,就像没有设置该选项一样。

  • 每次可见行的初始数量不起作用

我第一次添加寻呼机小部件时,它起作用了。但是因为默认的内存行为是要记住排序选项,之后的每个新请求都不再起作用。可见行的初始数量始终是在页面大小下拉列表中选择的行。

这是真的,如果我选择另一个值,则数字会按预期更改,并且在刷新之后,我之前选择的数量是显示的数量。

阅读文档后,我看到了 size 选项。我用较低的数字定义它(因为我还在构建GUI而我没有实际数据)但是,显示的行数也是记忆的行数。

清理浏览器缓存会使此属性按预期工作,直到选择新的页面大小值,即使 saveSort 定义为 false ,也要再次记忆。< / p>

我怎样才能解决这些问题?

1 个答案:

答案 0 :(得分:3)

您要使用的选项是pager savePages option

$(function(){
    $( 'table' ).tablesorter({
        theme: 'bootstrap',
        headerTemplate: '{content}{icon}',
        widgets: [ "uitheme" ],
        headers: {
            3:{sorter: false},
            4:{sorter: false}
        }
    })
    .tablesorterPager({
        container: $(".ts-pager"),
        savePages : false,
        output: '{startRow} to {endRow} ({totalRows})'
    });
});

saveSort widget option实际上与saveSort小部件一起使用,该选项属于widgetOptions:

$(function(){
  $("table").tablesorter({
    widgets: ["saveSort"],
    widgetOptions : {
      // if false, the sort will not be saved for next page reload
      saveSort : false
    }
  });
});