2017-02-03 3 views
0

Я использую динамические динамические таблицы на стороне сервера и пытаюсь найти, например, четвертый столбец каждой строки сгенерированной таблицы для определенного значения.Поиск каждой строки данных для значения

Я хотел бы добавить класс в любую строку, содержащую определенную строку.

Это то, что я до сих пор:

<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], получает значение каждой строки, но сохраняет все значения каждой строки, как example1, example2, example3 и т. д., поэтому нельзя сравнивать переменную data [0] с указанной строкой, например, «login failed».

Какой метод или код использовать?

Спасибо

+0

[обсуждение данных на дата-форуме] (https://datatables.net/forums/discussion/28998/add-class-to-cell-when-using-server-side-processing) может помочь –

+0

ну на этом сообщении, которое вы отправили меня нет информации о моей проблеме. Хорошо окрасить tr или td не проблема. Проблема состоит в том, чтобы покрасить tr или td в зависимости от значения фактического td, например. если у нас есть red, тогда загрузите класс = "red" else, если у нас есть синий, тогда load class = "blue" – 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

Можете ли вы попробовать 'console.log' свою переменную' data' после этой строки, чтобы увидеть, действительно ли вы выполняете эту функцию: 'var data = dataTable.columns ([4, 1]) .data();' – jonmrich

Смежные вопросы