1

我在这里使用 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")});

那么任何人都可以提出一个更优雅、更有效的解决方案吗?

4

1 回答 1

2

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

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 %>});
于 2010-01-10T22:00:21.483 回答