如何自动修复数据表中的下一页

时间:2019-08-24 08:31:56

标签: javascript datatable

目前,我正在根据Datatables Switch between pages automatically中的数据表代码建立一个表 然后我发现了一个错误,如果“在一个页面中显示的总数据mod(模数)个数据”评估为0,则表将滑至第二页(而不是第一页)。

例如

____________________________________________________________
| total data | num of data displayed in a page |  result   |  
____________________________________________________________
|   9        |            3                   |    bug    |
|   10       |            2                   |    bug    |
|   8        |            3                   |    normal |
|   11       |            3                   |    normal |

下面是我正在使用的代码 https://jsfiddle.net/0oey9tnf/

$(document).ready(function (){
    var table = $('#example').DataTable({
    pageLength: 7
    });
    setInterval(function(){ 
       var info = table.page.info();
       var pageNum = (info.page < info.pages) ? info.page + 1 : 1;
       table.page(pageNum).draw(false);    
    }, 1000);   

});

4 个答案:

答案 0 :(得分:0)

经过一些测试,看来DataTables.page适用于索引而非页码。
因此,JavaScript代码变为:

$(document).ready(function (){
    var table = $('#example').DataTable({
        pageLength: 7
    });
    setInterval(function(){ 
       var info = table.page.info();
       var pageNum = (info.page + 1 < info.pages) ? info.page + 1 : 0;
       table.page(pageNum).draw(false);    
    }, 1000);   

});

在这里尝试整个操作:https://jsfiddle.net/dz5mfyr4/

答案 1 :(得分:0)

尝试这个

$(document).ready(function (){
    var table = $('#example').DataTable({
    pageLength: 6
    });
    setInterval(function(){ 
       var info = table.page.info();
       var pageNum = (info.page < info.pages) ? info.page + 1 : 0
       table.page(pageNum).draw(false);    
    }, 1000);   

});

https://jsfiddle.net/tom7c2ea/

答案 2 :(得分:0)

$(document).ready(function (){
    var table = $('#example').DataTable({
    pageLength: 7
    });
    setInterval(function(){ 
       var info = table.page.info();
       var pageNum = (info.page <= info.pages) ? info.page +1: 1;
       table.page(pageNum).draw(false);    
    }, 1000);   

});

希望这对您有用。

答案 3 :(得分:0)

您的实际逻辑应该是循环的

var pageNum = ((info.length + info.start) % info.pages);

应该解决问题