2015-07-14 2 views
3

Я хотел бы изменить цвет текста ячейки на основе его значения. Однако функция fnCreatedCell не вызывается, когда я добавляю данные в таблицу.jQuery DataTables fnCreatedCell не называется

Это довольно странно, потому что я использовал fnCreatedRow с успехом. Тем не менее, это может только окрасить всю строку, что не является желаемой функциональностью.

Я вижу, что последняя функция имеет тип «Обратный вызов», тогда как fnCreatedCell имеет тип «Столбцы». Поэтому я предполагаю, что не могу использовать fnCreatedCell, например fnCreatedRow, но как его использовать?

Вот код:

$(document).ready(function() { 
     $('#demo').html('<table cellpadding="0" cellspacing="0" border="0" class="display cell-border" id="example" ></table>'); 

     t = $('#example').DataTable({ 
      "columns": 
      [ 
       {"title": "c1", "data": "c1" }, 
       {"title": "c2", "data": "c2" }, 
      ], 

      "fnCreatedCell": function (nTd, sData, oData, iRow, iCol) 
      { 
       console.log(sData, cData, 'TEST'); // not being done 
       if (sData > 30) 
       { 
        $(nTd).css('color', 'blue') 
       } 
      } 
     });   
    }); 

ответ

2

«Тип„Колонки“» означает, что он является частью columns/columnDefs структур, то есть у вас есть fnCreatedCell (от 1.10.x, как вы используя вы можете назвать его createdCell) для каждого отдельного столбца. Пример:

t = $('#example').DataTable({ 
    "columns": [ 
     {"title": "c1", "data": "c1" }, 
     {"title": "c2", 
     "data": "c2", 
     "fnCreatedCell": function (nTd, sData, oData, iRow, iCol) { 
      console.log(sData, cData, 'TEST'); // not being done 
      if (sData > 30) { 
       $(nTd).css('color', 'blue') 
      } 
     } 
     } 
    ] 
});  
1

fnCreatedCell следует использовать для каждой колонки. Это не общая реализация для всей базы данных. Используйте нижеприведенную реализацию.

t = $('#example').DataTable({ 
    "columns": [ 
     {"title": "c1", "data": "c1", 
      "fnCreatedCell": function (nTd, sData, oData, iRow, iCol) { 
       console.log("fnCreatedCell"); 
      } 
     }, 
     {"title": "c2", "data": "c2"} 
    ] 
}); 
Смежные вопросы