Как применить условное форматирование с помощью datatables.Яш?

У меня есть таблица html, которая использует datatables.js и не смогли найти четкий пример того, как применять Условное форматирование.

Как я могу изменить цвет текста ячейки в столбце 4, когда ее значение == 0 и значение в столбце 5!=0

<script>
      $(document).ready(function () {
        $("#GeneratedData").dataTable({
          "sDom": 'T<"clear">lrtip',
          "oTableTools": {
            "sSwfPath": "http://localhost:5637/Content/swf/copy_csv_xls_pdf.swf"
          },
           "sPaginationType": "full_numbers"
        });
      })
</script>

1 ответов


обновление. Первоначальный ответ был нацелен на dataTables 1.9.X. Он по-прежнему работает и работает с dataTables 1.10.x также (до сих пор), но вот чистые dataTables 1.10.X версия :

var table = $('#example').DataTable({
  rowCallback: function(row, data, index) {
    if (data[3]=='0' && data[4]!='0') {
      $(row).find('td:eq(3)').addClass('color')
    }   
  }
})

демо -> http://jsfiddle.net/2chjxduy/


вы должны использовать fnRowCallback событие для этого. Из документов :

эта функция позволяет после обработки каждой строки после было генерируется для каждой таблицы draw, но перед ее отображением на экране. Эта функция может использоваться для установки имени класса строки и т. д.

Итак, в вашем случае сделайте следующее:

$("#GeneratedData").dataTable({
   //your settings as above here
   fnRowCallback: function(nRow, aData, iDisplayIndex, iDisplayIndexFull) {
       if ($(nRow).find('td:eq(3)').text()=='0' &&
           $(nRow).find('td:eq(4)').text()!='0') {
              $(nRow).find('td:eq(3)').addClass('color');
           }   
    }
});

color является предопределенным классом CSS. См. его в действии в этом jsfiddle ->http://jsfiddle.net/GfNeA/