2017-02-03 3 views
0

Ich verwende dynamische dynamische Tabellen auf der Serverseite und versuche zum Beispiel die vierte Spalte jeder Zeile der generierten Tabelle nach einem bestimmten Wert zu suchen.Suche in jeder Zeile einer Datentabelle nach einem Wert

Ich möchte eine Klasse zu jeder Zeile hinzufügen, die eine bestimmte Zeichenfolge enthält. Diese

ist, was ich habe bis jetzt:

<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> 

Wie Sie die variablen Daten sehen können [0], um den Wert jeder Zeile bekommt, sondern hält alle Werte jeder Zeile, wie example1, example2, example3 etc, also kann die Variable data [0] nicht mit der angegebenen Zeichenfolge verglichen werden, zB "login failed".

Welche Methode oder welchen Code soll ich verwenden?

Danke

+0

[datatable forum diskussion] (https://datatables.net/forums/discussion/28998/add-class-to-cell-when-using-server-side-processing) kann helfen –

+0

gut auf diesen Beitrag, den Sie gesendet haben mir gibt es keine Infos zu meinem Problem. Ok, ein tr oder td zu färben ist kein Problem. Das Problem besteht darin, einen tr oder einen td abhängig von dem Wert des tatsächlichen td zu färben, z. wenn wir haben rot dann laden klasse = "rot" sonst, wenn wir haben blau dann laden klasse = "blau" – user3464267

Antwort

0

Ich denke drawcallback arbeiten:

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

Setzen Sie dieses in einem Ort Ihrer createdRow Abschnitt.

+0

Ich habe die DrawCallback-Funktion nach Ihrem Beitrag, aber keine Auswirkungen. – user3464267

+0

Können Sie versuchen, Ihre 'data' -Variable nach dieser Zeile' console.log' zu überprüfen, um zu sehen, ob Sie die Funktion tatsächlich ausführen: 'var data = dataTable.columns ([4, 1]) .data();' – jonmrich

Verwandte Themen