2016-01-28 55 views
3

我需要销毁数据表并用一组新列重新初始化它。数据表重新初始化时出错

错误:

Uncaught TypeError: Cannot read property 'parentNode' of null on below line

var orig = settings.nTableWrapper.parentNode; 

下面是我如何摧毁并初始化表。

if($.fn.DataTable.fnIsDataTable(dataTableHelper.element)){ 
    dataTableHelper.element.DataTable().destroy(); 
} 

table = dataTableHelper.element.DataTable({ 
       processing: true, 
       serverSide: true, 
       bDestroy: true, 
       paging: true, 
       ordering: true, 
       orderCellsTop: true, 
       scrollX: false, 
       fixedColumns: false, 
       fixedHeader: true, 
       order: order, 
       orderMulti: false, 
       lengthChange: false, 
       searching: false, 
       displayStart: 0, 
       pageLength: 100, 
       ajax: { 
        "url": url, 
        "type": 'POST', 
        "contentType": "application/json", 
        "dataType": "json", 
        "dataSrc": function (json) { 

         return json.data; 
        }, 
        data: function (data) { 
         setTableParams(data); 
        } 
       }, 
       columnDefs: dataTableHelper.columnDefs, 
      }); 

我该如何纠正这个错误?

+0

反而破坏和重新初始化的,看看https://datatables.net/reference/api/ajax.reload() – DelightedD0D

+1

我必须销毁并重新初始化,因为将根据用户在屏幕上的选择显示不同的列。 –

回答

0

这是我用来摧毁一个DataTable的方法:

if ($.fn.DataTable.isDataTable('#someTable')) { 
    $("#someTable").dataTable().fnDestroy(); 
    $('#someTable').empty(); 
}