Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/335.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 重新加载DataTable后,大多数函数返回null_Javascript_Jquery_Datatable - Fatal编程技术网

Javascript 重新加载DataTable后,大多数函数返回null

Javascript 重新加载DataTable后,大多数函数返回null,javascript,jquery,datatable,Javascript,Jquery,Datatable,在重新加载dataTable之后,我遇到了一个奇怪的错误,大多数函数返回null我尝试了table.fn销毁然后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]

在重新加载dataTable之后,我遇到了一个奇怪的错误,大多数函数返回null
我尝试了
table.fn销毁
然后
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
下面是一个显示问题的测试用例:

有什么想法吗


谢谢。

DataTables在内部跟踪数据,因此它不知道对表元素所做的外部更改。使用提供的API将数据重新加载到数据表中

我将使用一些选项初始化数据表,这些选项指定如何使用mRender回调呈现编辑列:

var oTable = $('#sample_editable_1').dataTable({
    "aoColumnDefs": [{
        "aTargets": [4],
        "mRender": function (data, type, full) {
            return '<a class="edit" href="javascript:;">Edit</a>';
        }
    }]
});

为什么外部更改后重新初始化表不起作用<代码>$(“#示例可编辑_1>tbody”)。替换为(ajaxHtml)
oTablePart.dataTable()虽然我不确定您为什么仍然直接操作DOM,但可以在reinit上传递选项“bDestroy”:true。dataTable({'bDestroy':true});
$('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);
});