3

私はデータテーブルに新しい行を追加しようとしています.API .any() を使用して、IDが行に既に存在するかどうかを確認し、存在する場合はデータテーブルに新しい行を追加しません。結果のフォームは次のとおりですデータベースからのリクエストはhttp://pastie.org/10196001を参照してください。しかし、確認に問題があります。

socket.on('displayupdate',function(data){
     var dataarray = JSON.parse(data);
     dataarray.forEach(function(d){
         if ( table.row.DT_RowId(d.DT_RowId).any() ) { // TypeError: table.row.DT_RowId is not a function
            console.log('already exist cannot be added');
         }else{
            table.row.add(d).draw();
         }
     });
 });

前もって感謝します。

4

1 に答える 1

3

もちろん、DT_RowIdnot は API の関数であるため、エラーが発生します。しかし、実際にdataTables から特別な扱いを受ける唯一のプロパティです。DT_RowId

各行のデータ ソース オブジェクトのプロパティ DT_RowId を使用して各行に適用する ID を割り当てると、DataTables によって自動的に追加されます。

では、一緒にrows()自動的に注入されたものをチェックしてみませんか?idany()

socket.on('displayupdate',function(data){
   var DT_RowId,
       dataarray = JSON.parse(data); 
   dataarray.forEach(function(d){
       DT_RowId = d.DT_RowId;
       if (table.rows('[id='+DT_RowId+']').any()) {
          console.log('already exist cannot be added');
       } else {
          table.row.add(d).draw();
       }
   });
});

簡易デモ -> http://jsfiddle.net/f1yyuz1c/

于 2015-05-19T11:15:22.393 に答える