2017-03-18 11 views
0

私はdatatables.jsを使用してレポートテーブルを作成しています。レポートページにはいくつかのフィルタがあります。フィルタを適用すると、サービスは列数が異なるデータを返します。このため、私はテーブルを破壊して作り直しています。しかし、エラーが発生します未定義またはnull参照のプロパティ 'スタイル'を取得できません。代わりにDatatables破壊関数エラー

  var htmlTable = "<table class='display responsive no-wrap cell-border compact' style='margin: 0 !important' width='100%' id='policyTable'>" + 
      "<thead>" + 
      "<tr class='cell-border custom-header-footer tableHeaders' id='tableHeaders'>" + 
      "<th>Policy Details</th>" + 
      "</tr>" + 
      "</thead>" + 
      "</table>"; 

    function InitAndLoadTableData(tableData, tableId, exportTitle) {    

     if ($.fn.DataTable.fnIsDataTable("#" + tableId)) { 
      var oldTable = $("#" + tableId).DataTable(); 
      oldTable.destroy(true); 
      $("#divFor_" + tableId).append(htmlTable); 
     } 

     var table = $('#' + tableId) 
      .DataTable({ 
       data: tableData, 
       dom: "<'row' <'col-md-12'B>><'table-scrollable't><'row'<'col-md-5 col-sm-12'i><'col-md-7 col-sm-12'p>>", 
       "searching": false, 
       "paging": false, 
       "info": false, 
       "ordering": false, 
       //destroy: true, 
       responsive: true, 
       processing: false, 
       columns: tableColumns, 
       buttons: [ 
        { extend: 'copy', className: 'btn red btn-outline', title: exportTitle }, 
        { extend: 'pdf', className: 'btn green btn-outline', title: exportTitle }, 
        { extend: 'excel', className: 'btn yellow btn-outline', title: exportTitle }, 
        { extend: 'csv', className: 'btn purple btn-outline', title: exportTitle } 
       ] 
      }); 

     table.buttons().container().appendTo($('.col-md-12:eq(0)', table.table().container()));   

    } 

答えて

0

あなたはこれを試してみてください...

$( '#例')のDataTable。({ が破壊:真は、 //他のすべてのものは、あなたが実行したい }) ;

+0

あなたが言ったように試みましたが、うまくいきませんでした。私のアプリケーションでは、列と列のスタイルを動的に作成しています。ですから、テーブルhtmlでコンテナdivのhtmlを設定した後、カラムを再作成して問題を解決しました。あなたの返信@Ranjithに感謝します。 –