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

标签 javascript c# jquery datatables

我正在尝试从 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);
        });

这是我遇到的错误:

Cannot read property '_aData' of undefined(…)

有什么建议吗?

最佳答案

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

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'))被绑定(bind)了多次。在首先删除事件监听器并读取它之后,我终于让它工作了。

关于javascript - 无法读取未定义(…)的属性 '_aData' - 数据表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40357333/

相关文章:

javascript - Angular 定义自己的指令

c# - 从目录中获取文件数而不在 C# 中枚举文件

c# - Entity Framework 加入说明

jquery - 选项卡式内容/表格方向

javascript - 在jsp中添加和检索文本框

javascript - 使用 Jquery 忽略 JSON 字符串/ header

javascript - 如何在控制台中重新定义 JavaScript(不是 CSS)类?

c# - 是否有必要取消订阅事件?

jQuery、HTML 表格和 .last()

javascript - 如果 parent 关闭,如何关闭 child Accordion ?