我使用从这里开始的tablesorter和传呼机插件: 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")});

因此,任何人可以提出一个更优雅,有效的解决方案?

有帮助吗?

解决方案

我不知道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 %>});
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top