无法读取未定义(…)的属性“_aData” - 数据表

Posted

技术标签:

【中文标题】无法读取未定义(…)的属性“_aData” - 数据表【英文标题】:Cannot read property '_aData' of undefined(…) - Datatables 【发布时间】:2017-03-14 10:20:06 【问题描述】:

我正在尝试从datatable 的单元格中读取data(),其中有一个按钮,但我遇到了错误。

这是我的Datatable 定义:

$("#example").DataTable(
                destroy: true,
                "columnDefs": [
                    orderable: false,
                    targets: 0
                ],
                "columns": [
                    
                        "data": "slno",
                        "fnCreatedCell": function (nTd, sData, oData, iRow, iCol) 
                            $(nTd).html('<a href="AddNewTicket.aspx?subjectID=' + oData.subjectID + '&subject_id=' + oData.subject_id + '&serviceID=' + oData.crm_services_id + '&severityID=' + oData.severityID + '&statusID=' + oData.statusID + '&callerID=' + '66355356' + '">' + oData.slno + '</a>');
                        ,
                    ,
                     "data": "status_message" ,
                     "data": "crm_services_id" ,
                     "data": "subject_id" ,
                     "data": "severity_id" ,
                    "data": "user_id" ,
                     "data": "status_id" ,
                    
                        "data": "caller_number",
                        "fnCreatedCell": function (nTd, sData, oData, iRow, iCol) 
                            $(nTd).html('<button class="btn btn-primary" id= "' + oData.subjectID + '">Call Customer</button>');
                        ,
                    
                ],
                select: 
                    style: 'os',
                    selector: 'td:first-child'
                ,
                "data": response,
                "sDom": '<"top">tip'
            );

这是我试图获取数据的地方:

var table = $("#example").DataTable();
        $('#example tbody').on('click', 'button', function () 
            var subjectID = $(this).attr('id');
            var thisData = table.row($(this).parents('tr')).data();
            var userID = thisData[7];
            sendCallRequest(subjectID, userID);
        );

这是我得到的错误:

无法读取 undefined(...) 的属性“_aData”

有什么建议吗?

【问题讨论】:

嗨,你解决了吗? 【参考方案1】:

在重新分配按钮之前,尝试取消绑定按钮的事件:

var table = $("#example").DataTable();

    $('#example tbody').off('click');

    $('#example tbody').on('click', 'button', function () 
        var subjectID = $(this).attr('id');
        var thisData = table.row($(this).parents('tr')).data();
        var userID = thisData[7];
        sendCallRequest(subjectID, userID);
    );

我为什么建议这个:我有一个非常相似的问题,DataTables 无法调用 rowReorder 事件。我还通过 AJAX / 动态创建我的表(你似乎也这样做),所以显然我的事件监听器(在我的情况下为 table.on('row-reorder'))被绑定了多次。在首先删除事件侦听器并阅读它之后,我终于让它工作了。

【讨论】:

以上是关于无法读取未定义(…)的属性“_aData” - 数据表的主要内容,如果未能解决你的问题,请参考以下文章

[Vue 警告]:观察者“childItems”的回调错误:“TypeError:无法读取未定义的属性‘标签’”

无法读取未定义类型错误的属性“推送”:无法读取未定义错误的属性“推送”

带有 Ionic 4 的 SQLite?无法读取未定义类型错误的属性“then”:无法读取未定义的属性“then”

`无法读取未定义的属性(读取'组件')`

NextJS:未捕获的类型错误:无法读取未定义的属性(读取“属性”)

使用地图时反应'无法读取未定义的属性'