2017-02-03 2 views
0

動的なサーバー側の動的テーブルを使用していて、特定の値に対して生成されたテーブルの各行の4番目の列を検索しようとしています。データテーブルの各行で値を検索する

特定の文字列を含む行にクラスを追加したいとします。

これは私が今まで持っているものです。

<script type="text/javascript" language="javascript" > 
    $(document).ready(function() { 

     var dataTable = $('#dynamic-table').DataTable({ 
      responsive: true, 
      processing: true, 
      serverSide: true, 
      lengthMenu: [[250, 750, 1000], [250, 750, 1000]], 
      order: [[ 3, "desc" ]], 
      columnDefs: [ { 
       targets: [ 0, 1, 2, 5 ], //"targets": 'nosort',// using class 
       orderable: false 
      } ], 
       "columns": [ 
       { "searchable": true }, 
       { "searchable": true }, 
       { "searchable": true }, 
       { "searchable": true }, 
       { "searchable": true }, 
       { "searchable": true } 
       ], 
      ajax:{ 
       url :"php/ajax.php", // json datasource 
       type: "post", // method , by default get 
       error: function(){ // error handling 
        $(".dynamic-table-error").html(""); 
        $("#dynamic-table_processing").css("display","none"); 

       } 
      }, 

      "createdRow": function(row, data, dataIndex) {         

       // Add a class to the row 
       var data = dataTable.columns([4, 1]).data(); 
       if (data[0]=='login failed'){    
        $(row).addClass('bg-dark-red'); 
       } 
      } 

     }); 


     $("table.dataTable .sorting").append('<i class="glyph-icon"></i>'); 
     $("table.dataTable .sorting_asc").append('<i class="glyph-icon"></i>'); 
     $("table.dataTable .sorting_desc").append('<i class="glyph-icon"></i>'); 

    }); 
</script> 

あなたは変数のデータを見ることができるように[0]、各列の値を取得しますが、例1、例2のように、各ラインの全ての値を保持し、 example3などです。したがって、data [0]変数を指定された文字列と比較することはできません。たとえば、 "login failed"です。

どのメソッドまたはコードを使用する必要がありますか?

あなたは

+0

[データテーブルフォーラムディスカッション](https://datatables.net/forums/discussion/28998/add-class-to-cell-when-using-server-side-processing) –

+0

あなたが送信したこの投稿にも役立つかもしれません私の問題に関する情報はありません。 TRを色付けしたり、tdに問題はありません。問題は実際のtdの値に応じてtrまたはtdの色を付けることです。もし私たちが​​赤をロードクラス= "赤"それ以外の場合​​青ロードクラス= "青" – user3464267

答えて

0

私はdrawcallbackが動作すると思いますありがとう:

  "drawCallback": function(settings, json) { 
    var data = dataTable.columns([4, 1]).data(); 
      if (data[0]=='login failed'){    
       $(row).addClass('bg-dark-red'); 
      } 
      } 

はあなたの createdRowセクションの代わりにこれを入れてください。

+0

あなたの投稿に従ってdrawCallback関数を使用しましたが、影響はありません。 – user3464267

+0

この行の後に 'data'変数を' console.log'して、実際に関数を実行しているかどうかを調べることができます: 'var data = dataTable.columns([4、1]).data();' – jonmrich

関連する問題