【问题标题】:DataTable pagination does not work数据表分页不起作用
【发布时间】:2016-01-11 20:22:38
【问题描述】:

我正在使用 DataTable 通过 serverSide 模式和 ajax 显示我的数据。
一切正常,但分页不起作用。

您可以查看以下代码:

HTML:

<table id="table" class="display" cellspacing="0" width="100%">
    <thead>
        <tr>
            <td>ID</td>
            <td>First name</td>
            <td>Last name</td>
            <td>Email</td>
        </tr>
    </thead>
    <tbody></tbody>
</table>

Javascript:

$(document).ready(function () {
    $('#table').DataTable({
        serverSide: true,
        ajax: {
            url: '<?php echo base_url(); ?>folder/class/method'
        },
        processing: true,
        scrollY: 370,
        paging: true,
        bJQueryUI: true
    });
});

从服务器(JSON)返回的数据如下:

{
    "draw": 1,
    "recordsTotal": 1208,
    "recordsFiltered": 10,
    "data": [
        ["1", "pando", "rewar", "pando@hotmail.com"],
        ["2", "chori", "raon", "m_chori@hotmail.com"],
        ["3", "Gorbat", "horiz", "horiz_555@yahoo.com"],
        ["4", "martin", "sokza", "martin_em5@gmail.com"],
        ["5", "dooz", "solda", "solda_m@gmail.com"],
        ["6", "maro", "meza", "r_meza@hotmail.com"],
        ["7", "nod", "ion", "nod_eam@yahoo.com"],
        ["8", "kaz", "loob", "kaz_007@hotmail.com"],
        ["9", "Barbara", "Elliott", "adipiscing@nonmassanon.org"],
        ["10", "Kendall", "Nathaniel", "ante.blandit@scelerisque.edu"]
    ]
}

DataTable 的所有组件都可以正常工作,但分页却不行。

【问题讨论】:

  • 我猜这与您使用顶部下拉菜单将结果集过滤为 25 有关。在底部它说显示 25 个条目中的 25 个,从 1208 过滤。它应该显示 1208 中的 25 个。
  • @Mike:请注意,但现在的问题是recordsTotalrecordsFiltered 从同一来源获取数据计数。我认为recordsTotal = 表中的所有行(例如:1208),recordsFiltered = 一次显示的数据(例如:25)。但现在我更改为相同的来源(例如:1208)。

标签: javascript php pagination datatables


【解决方案1】:

除非用户执行搜索,否则参数recordsFiltered 必须等于recordsTotal。有关发送和接收参数的更多信息,请参阅manual

还要确保在响应中返回相同的 draw 参数值。在JSON response 中,draw 参数的值必须与request 中的draw 参数的值匹配。

【讨论】:

  • 谢谢,我从手册中得到:recordsTotal = "数据库中的记录总数" 和recordsFiltered = "应用过滤后的记录总数-不仅仅是此页数据返回的记录数”。老实说,我还是不明白它们之间的区别
  • @LionKing,例如,如果您搜索术语LondonrecordsTotal 仍应包含所有记录的总数,而recordsFiltered 应包含术语London 的记录数它。
  • 现在我明白了。
猜你喜欢
  • 2018-03-28
  • 2017-10-27
  • 2012-12-05
  • 2015-11-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多