代码之家  ›  专栏  ›  技术社区  ›  elwyn

jQuery Tablesorter Pager-设置第一个显示的行

  •  1
  • elwyn  · 技术社区  · 16 年前

    我在这里使用TableSorter和Pager插件: http://tablesorter.com/docs/

    我希望表格显示从某个定义的索引开始的结果-例如,如果我的索引是14,我希望表格显示结果11-20的“页面”,因此显示我的行,而不是从默认的第1页开始,显示结果1-10。

    我已经按照预期工作了,但是有一些相当丑陋的代码。。

    首先,我计算出需要显示的页面(C#):

    int index = 24;
    int pageToDisplayFirst = 1;
    while (true)
    {
        if (index - 10 > 0)
        {
            pageToDisplayFirst++;
            index -= 10;
        }
        else
        {
            break;
        }
    }
    

    然后我用这个糟糕的循环设置页面:

    for(var i = 0; i < <%= pageToDisplayFirst %>; i++) {
        $(".next").trigger("click");
    }
    

    以下是jQuery初始化代码,没有什么特别之处:

     $("table.tablesorter").tablesorter({
         cssAsc: 'sortasc', cssDesc: 'sortdesc', cssHeader: 'unsorted',
         sortList: [[0,0]]
     }).tablesorterPager({container: $("#pager")});
    

    那么,有人能提出一个更优雅、更高效的解决方案吗?

    1 回复  |  直到 16 年前
        1
  •  2
  •   antpaw    16 年前

    我不知道,但你可以这样做:

    pageToDisplayFirst = Math.floor(index / itemsPerPage + 1)

     //found this code in the plungin source
    this.defaults = {
        size: 10,
        offset: 0,
        page: 0, <<<<
        totalRows: 0,
        totalPages: 0,
        container: null,
        cssNext: '.next',
        cssPrev: '.prev',
        cssFirst: '.first',
        cssLast: '.last',
        cssPageDisplay: '.pagedisplay',
        cssPageSize: '.pagesize',
        seperator: "/",
        positionFixed: true,
        appender: this.appender
    };
    

    也许你认为这会管用

    $("table.tablesorter").tablesorter({
        cssAsc: 'sortasc', cssDesc: 'sortdesc', cssHeader: 'unsorted',
        sortList: [[0,0]]
    }).tablesorterPager({container: $("#pager"), page: <%= pageToDisplayFirst %>});