无法读取属性'_data 'of undefined(…)-数据表
本文关键字:数据表 undefined 读取 属性 data of | 更新日期: 2023-09-27 18:15:41
我正试图从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);
});
下面是我得到的错误:
无法读取未定义的属性'_aData'(…)
有什么建议吗?
尝试在重新分配按钮之前取消绑定事件:
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);
});
为什么我这样建议:我有一个非常类似的问题,其中数据表不能调用rowReorder事件。我还通过AJAX/动态创建我的表(您似乎也这样做),所以很明显,我的事件侦听器(在我的情况下为table.on('row-reorder'))被绑定了多次。在首先删除事件侦听器并读取它之后,我终于让它工作了。