[英]jquery datatables column.data undefined
我正在使用数据表的行分组功能,这是我的drawcallback函数:
oTable = jQuery_1_11('#example').dataTable({
"searching": false,
"processing": true,
"serverSide": true,
"iDisplayLength": 20,
"sPaginationType": "full_numbers",
"language": {"infoFiltered": ""},
columnDefs: [{
targets: 0,
"visible": false,
}],
"ajax": {
"url": "index.php?entryPoint=getTableData",
"dataType": 'json',
"pages": "5",
"type": "POST",
"data": function(d) {
d.dbJson = sendJson
},
"dataSrc": function(response) {
return response.aaData;
}
},
"drawCallback": function( ) {
var api = this.api();
var rows = api.rows({page: 'current'}).nodes();
var last = null;
api.column(0, {page: 'current'}).data().each(function(group, i) {
if (last !== group) {
jQuery_1_11(rows).eq(i).before(
'<tr class="group"><td colspan="5">' + group + '</td></tr>'
);
last = group;
}
});
}
})
我不知道它被卡住了。
api.column(0, {page: 'current'}).data().each(function(group, i) {
这给出了错误:
未捕获的TypeError:无法读取未定义的属性“ each”
请帮忙!
在ajax调用返回之前,将调用drawCallback。 在首次表初始化以及ajax回调中都会调用它。 如果在操作.data()值之前插入类型检查,它将不会在第一个draw事件上崩溃,并且将在ajax回调上运行。
function( ) {
var api = this.api();
var rows = api.rows({page: 'current'}).nodes();
var last = null;
if(typeof api.column(0, {page: 'current'}).data() !=="undefined"){
api.column(0, {page: 'current'}).data().each(function(group, i) {
if (last !== group) {
jQuery_1_11(rows).eq(i).before(
'<tr class="group"><td colspan="5">' + group + '</td></tr>'
);
last = group;
}
});
}
}
希望它有帮助:)
通过更改为最新版本的DataTables 1.10.6可以解决此问题。 以前我使用的是DataTables 1.10.6-dev
在jquery.dataTables.js文件中,您可以检查第一行当前使用的内容。
并通过改变
jQuery_1_11('#example').dataTable
至
jQuery_1_11('#example').DataTable
感谢你的帮助 :)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.