繁体   English   中英

jQuery datatables 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) {

这给出了错误:

未捕获的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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM