2016-11-16 15 views
-1

を挿入される前に、ノードを:DataTableのエラー():実行に失敗しました「のinsertBefore」「ノード」上:新しいノードは、私は<strong>DataTableの</strong>を使用する方法

  1. からデータを取得db。
  2. Underscore.jsテンプレートを使用して、データを行オブジェクトに変換します。
  3. 表の<tbody>に行を移入します。
  4. 次に、私が持っているテーブルでDatatableを初期化します。私は、テーブルに行を追加しようとすると、

問題私はので、私はちょうど直接<tbody>に行を追加し、私はへのDataTableをしたいAPIを使用していない、新しい<tbody>を使用してREINITそれ自身です。

私はDestroyにテーブルをしようが、何が起こるかは、私はこのエラーを取得することですしています:

Uncaught DOMException: Failed to execute 'insertBefore' on 'Node': The node before which the new node is to be inserted is not a child of this node.(…)

私はDataTableのを使用して行うことをしようとしています何を再現するDemoを作成したが、それは再現されません。
https://datatables.net/forums/discussion/28081/how-to-update-table-when-dom-changes-destroy-init-crash

答えて

0

破壊する必要はありませんし、init、ちょうどテーブルのusinを再描画:エラー...ここ

は、私は同じエラーについて見つけ疑問がありますグラムのAPI

function Repopulate() { 
    //... 
    //... 
    //... 
    //init() //remove this line and add the one below 
    $("#changeLogTable").DataTables().draw(); 
} 
+0

しかし、ときに、検索入力中に何かを入力して、元のテーブルを取得します削除するのに役立ちます。この

希望を参照してください。 –

+0

最初のデモコードを変更したと思います。私はあなたが聞いたことを再現することはできません。 – Ergec

0

あなただけの "検索" を追加必要があります:あなたのDataTableの設定にオプション、真。詳細は

function init(){ 
    ruleChangeLogTable = $('#changeLogTable').DataTable({ 
     //I use destroy because I want to recreate the table with new data. 
      "bLengthChange": false, 
      "bPaginate": false, 
      "retrieve": true,    // this option is added 
      "bInfo": false, 
      "autoWidth": false, 
      "order": [[0, "desc"]], 
      "dom": '<"#searchInput"f>', 
      "oLanguage": { "sSearch": "" }, 
      "columns": [ 
      null, 
       null, 
       null, 
       null, 
       null 
      ] 
     }); 
    } 

https://datatables.net/reference/option/retrieveこれはあなた

+0

それは私のためには機能しませんでした。破棄機能を使用したときにのみ機能し、コンピュータで破棄機能を使用するとエラーが発生します: 'ノード'に 'insertBefore'を実行できませんでした。 (...) –

+0

"retrieve"を追加したデモで指定したデータテーブルをデトロイしないでください:true、それは私のために動作します –

+0

デモ?それはuの検索時に機能しますか? –

関連する問題