You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

修改每页显示条数后DataTable分页未重新渲染问题求助

DataTables分页渲染异常排查问题

修改每页显示条数为25后,后端返回数据如下,但前端仅显示激活的第1页分页,实际应显示2页(第1页25条,第2页3条),分页未正确渲染:

前端DataTables配置

$(document).ready(function() {
    $('#table_list').DataTable({
        "bJqueryUI": true,
        "bProcessing": true,
        "bServerSide": true,
        "sAjaxSource": "./action/list_json.php",
        "iDisplayLength": 50, // 默认每页显示条数
        "aaSorting": [],
        "oLanguage": {
            "sLengthMenu": 'Show <select id="list"><option value="25">25</option><option value="50">50</option><option value="100">100</option></select> lines'
        },
        "aoColumns": [
            { "bVisible":false }, { "bSortable":false }, { "bSortable":false }, { "bSortable":false }, { "bSortable":false }
        ]
    });
});

后端返回关键数据

....
"iTotalRecords" => "28"
"iTotalDisplayRecords" => 25

排查步骤

  • 修正iTotalDisplayRecords的返回值:该参数代表过滤后的总记录数,而非当前页的条数。当前场景下应返回28,而不是25。DataTables完全依赖这个值计算分页数量,若该值等于当前页条数,会被判定为只有1页。
  • 检查后端分页逻辑:确保后端在处理前端传入的length参数时,正确统计所有符合查询条件的总记录数,而非仅统计当前页返回的条数。
  • 验证前端请求参数:打开浏览器开发者工具的Network面板,切换每页条数时,确认AJAX请求中length参数为25,同时核对后端返回的iTotalDisplayRecords是否已修正为28。
  • 排查配置冲突:检查是否有其他代码覆盖了分页相关配置,比如误设bPaginate: false禁用分页;同时确认切换每页条数的下拉框是否正确触发DataTables的重新加载。
  • 核对版本参数用法:当前使用的是DataTables 1.9.x版本的旧参数命名(如bServerSide、sAjaxSource),对照官方文档确认参数含义是否正确使用,若存在版本bug,可尝试升级到对应版本的最新补丁。

内容的提问来源于stack exchange,提问作者GPiter

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 20:30:33