jquery 数据表 column.data 未定义
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) {
这是报错:
Uncaught TypeError: Cannot read property 'each' of undefined
请帮忙!
drawCallback 在 ajax 调用返回之前被调用。它在第一个 table 初始化事件和 ajax 回调中被调用。
如果您在操作 .data() 值之前插入类型检查,它不会在第一次绘制事件时崩溃,它会在 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
感谢大家的帮助:)
我正在使用数据表的行分组功能,这是我的 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) {
这是报错:
Uncaught TypeError: Cannot read property 'each' of undefined
请帮忙!
drawCallback 在 ajax 调用返回之前被调用。它在第一个 table 初始化事件和 ajax 回调中被调用。 如果您在操作 .data() 值之前插入类型检查,它不会在第一次绘制事件时崩溃,它会在 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
感谢大家的帮助:)