重新加载dataTable后,我收到一个奇怪的错误,大多数函数返回null。我尝试table.fnDestroy
然后table.datatable()
,但没有运气。
var oTable = $('#sample_table').dataTable();
var nRow = $(this).parents('tr')[0];
var aData = oTable.fnGetData(nRow); //works
表重新加载后
var nRow = $(this).parents('tr')[0];
var aData = oTable.fnGetData(nRow); //returns null
以下是显示问题的测试用例:JSFiddle
任何想法?
感谢。
答案 0 :(得分:1)
DataTables在内部跟踪数据,因此它不知道对表元素进行的外部更改。使用提供的API将数据重新加载到DataTables中。
我会使用一些选项初始化DataTables,这些选项指定如何使用mRender回调呈现Edit列:
var oTable = $('#sample_editable_1').dataTable({
"aoColumnDefs": [{
"aTargets": [4],
"mRender": function (data, type, full) {
return '<a class="edit" href="javascript:;">Edit</a>';
}
}]
});
现在在你的重载回调中,你可以使用fnClearTable和fnAddData代替替换表的主体:
$('body').on('click', '#reload', function () {
//this is where ajax will be added
var theData = ['New', 'New', 'New', 'New', null];
var theTable = $('#sample_editable_1').dataTable();
theTable.fnClearTable();
theTable.fnAddData(theData);
});