v1.10版DataTables.net Ajax加载表格提示无数据问题求助
问题定位
你的DataTables初始化配置存在2处位置错误,是数据无法正常填充的直接原因:
columns配置层级错误:你当前将列映射规则写在了ajax配置对象内部,但columns是和ajax平级的顶层初始化参数,框架无法读取到列与数据字段的对应关系,自然无法解析返回结果dataSrc配置值错误:你的接口返回JSON是{data: [行数据数组]}结构,DataTables默认就会从返回值的data字段读取数据集,你设置dataSrc: ''相当于告知框架将整个返回根对象(是个包含data属性的对象,不是数组)直接作为表格数据源,自然识别不到有效行数据
修正后的JS初始化代码
$(function () { var url = '@Url.Action("LicenseCountsReport", "Letters")'; $('#bob').DataTable({ ajax: { url: url, // 显式指定从返回值的data字段取数,也可以直接删除dataSrc配置项使用默认值 dataSrc: 'data' }, // 将columns配置移到和ajax平级的顶层位置 columns: [ { data: 'licensetype' }, { data: 'activecount' }, { data: 'pendingcount' }, { data: 'othercount' } ] }); });
补充说明
- 你的HTML表格结构、后端C#接口逻辑、返回的JSON数据格式均无问题,不需要调整
- 只有当接口直接返回纯数组格式(外层没有
data字段包装)时,才需要设置dataSrc: '',当前场景不需要该配置 - 调整配置后刷新页面即可正常填充数据,不会再出现"No data available in table"提示
内容的提问来源于stack exchange,提问作者IdahoB
相关产品推荐
相关产品推荐

