【发布时间】:2015-07-20 14:30:17
【问题描述】:
我正在使用 jQuery DataTables 的服务器端处理模式 ("serverSide": true)。我正在使用deferred loading option 来优化我的页面加载时间。
我也在使用columns 选项,但是当我自己定义columns 选项时出现了一些冲突。当第一次调用没有数据源时,它会尝试查找数据源,这就是延迟加载的全部意义所在。
未捕获的错误:DataTables 警告:表 id=table - 请求第 0 行的未知参数“id”。有关此错误的详细信息,请参阅http://datatables.net/tn/4
初始化代码:
function initialize_table(inital_length)
{
table_options = {
"serverSide": true,
"ajax": {
"url": '/merchant/all/',
"type": 'POST',
"deferRender": true,
// data: JSON.stringify(data),
// contentType: "application/json",
},
// "order": [[0, 'asc']]
"deferRender": true,
"processing": true,
"pageLength": 50,
"deferLoading": inital_length,
"lengthMenu": [ 20, 50, 100, 200, 500 ],
"columnDefs": [
{
// "class": "details-control",
'data': 'gr_id', // response[data]
'name': 'gr_id',
'orderable': true,
'search': {'regex': false, 'value': ''},
'searchable': true,
"targets": 0,
},
{
'data': "name",
'name': 'name',
'orderable': true,
'search': {'regex': false, 'value': ''},
'searchable': true,
"targets": 1,
},
{
'data': "address",
'name': 'address',
'orderable': false,
'search': {'regex': false, 'value': ''},
'searchable': true,
"targets": 2,
},
{
'data': "category",
'name': 'category',
'orderable': true,
'search': {'regex': false, 'value': ''},
'searchable': true,
"targets": 3,
},
{
'data': "chain",
'name': 'chain',
'orderable': true,
'search': {'regex': false, 'value': ''},
'searchable': true,
"targets": 4,
},
{
'data': "enabled",
'name': 'enabled',
'orderable': true,
'search': {'regex': false, 'value': ''},
'searchable': true,
"targets": 5,
},
{
'data': 'status',
'name': 'status',
'orderable': true,
'search': {'regex': false, 'value': ''},
'searchable': true,
"targets": 6,
}
],
}
var merchant_table = $("#merchant-table").DataTable(table_options);
}
【问题讨论】:
-
这个错误通常表示数据格式不正确,更多见here。如果您将
deferLoading与serverSide: true一起设置为正数,则它不应在第一次调用时请求数据,可能有其他错误导致此问题。请显示您的 DataTables 初始化代码和服务器返回的数据。 -
当我没有定义
columns或columnDefs时没有抛出错误(然后它使用它的默认值,通过它的索引引用列。)。
标签: javascript jquery datatables datatables-1.10