Datatables开启服务端分页有记录仍显示infoEmpty提示如何解决
问题排查及解决方案
- 优先检查服务端返回格式是否符合要求
开启serverSide服务端分页模式时,Datatables要求接口必须返回3个核心字段:data:当前页的记录数组recordsTotal:数据库中未经过滤的总记录数recordsFiltered:经过搜索条件过滤后的总记录数(无搜索时和recordsTotal值一致)
绝大多数有数据仍显示空提示的情况,都是这两个计数字段返回错误(比如填了0)导致的,可以打开浏览器控制台查看ajax-paging接口的返回值确认。
- 修复代码中的语法错误
你当前配置里language.lengthMenu行末尾多了多余的右括号,会导致配置解析异常,修改为:"lengthMenu": '_MENU_ records per page', - 确认数据源映射匹配
如果接口返回的记录数组没有放在根节点的data字段下,需要在ajax配置中用dataSrc指定对应的字段名,比如数据放在result字段下就加:
同时确认"ajax": { "url": this.getUrl() + this.getClassName() + "/ajax-paging", "type": "POST", "dataSrc": "result" }columns配置中每个data对应的字段名,和接口返回的单条记录的键完全一致,大小写敏感。 - 修复变量名错误
你代码前面定义的表格实例变量是table,末尾返回的却是$table,变量名不匹配,修改为return table;即可。 - (可选)添加调试日志排查问题
可以在ajax配置中添加回调打印返回值,确认数据是否正常:"ajax": { "url": this.getUrl() + this.getClassName() + "/ajax-paging", "type": "POST", "complete": function(res) { console.log('接口返回内容:', res.responseJSON); } }
内容的提问来源于stack exchange,提问作者Heiko
相关产品推荐
相关产品推荐

