【发布时间】:2017-01-21 13:38:51
【问题描述】:
我正在使用Datatables 插件使用 ajax 属性从服务器获取表数据,并使用 dataSrc 属性对其进行转换。我的数据表定义:
var my_table = $('#my_table').dataTable({
"processing": true,
"serverSide": true,
"ajax": {
"url": "/my/url",
"type": "POST",
"dataSrc": function(json) {
console.log('json', json);
return format_my_table_data(json.data);
}
},
"deferLoading": found_rows,
"data": initial_my_table_data,
"ordering": true,
"order": [[1, "desc"]],
"lengthMenu": [
[25, 50, 100],
[25, 50, 100]
],
"columns": my_table_columns
});
初始加载工作正常,排序列和搜索工作有时但大多数情况下我看到 ajax 调用成功返回并使用有效的 json(我使用 jsonlint.com 验证)并且表格卡在“处理中...”有时或表格根本没有改变。
来自服务器的 JSON:
{"recordsTotal":379,"recordsFiltered":378,"draw":25,"data":[{...}]}
在控制台中检查网络时,我可以看到正在发送的 ajax 请求和每次都相似的响应(总时间在 600 毫秒到 1600 毫秒之间,具体取决于返回的行数),但我的 console.log 在未调用 dataSrc 函数,并且控制台中没有 javascript 错误。什么给了?
【问题讨论】:
-
您返回的
draw参数是否与服务器请求中收到的相同?如果请求和响应中的draw值不匹配,插件可能会丢弃响应。 -
@Gyrocode.com 返回结果的数量小于draw值的情况,如果draw值是3,你只能找到3行?或者我可能误解了“画”是什么。
标签: jquery datatables datatables-1.10