Datatable使用rowcallback

时间:2016-05-02 08:34:39

标签: jquery datatables

我正在使用数据表,如果STATEMENT满足要求,目前仍然在将行更改为另一种颜色,已经尝试了很多东西,但它确实有很奇怪的错误,我的代码是:

"rowCallback": function( row, data, index ) {
        if ( data[2] < data[4] ) {
          $('td', row).css('background-color', 'pink');
        }
}

在我的回复文件中,我写了这个查询:

$sql = "SELECT itemid,itemname,stock,unit,minimum FROM item WHERE type LIKE 'homecare'";

如果商品的库存低于用户设置的最小值,我想更改行颜色。

我目前的数据表测试结果如下: enter image description here

我运行的示例测试结果:

  • 低于10且高于最低值=未更改
  • 10及以上=红色&lt;&lt;它应该是不变的,因为它高于最小值
  • 50及以上=不变

虽然两行“最小”列的数据库设置都是相同的数字(5)

感谢您的帮助!

3 个答案:

答案 0 :(得分:3)

您似乎有9 cc10 cc以及stock列中的值?如果要进行数值比较,则必须将每列的数字提取为数字。我还会在.pink添加<tr>课程,而不是在所有background-color上设置<td>

"rowCallback": function( row, data, index ) {
  var stock = parseFloat(data[0]), //data[2]
      minimum = parseFloat(data[1]), //data[4]
      $node = this.api().row(row).nodes().to$();

  if (stock < minimum ) {
     $node.addClass('pink')
  } 
}      

演示 - &gt;的 http://jsfiddle.net/104o96cn/

答案 1 :(得分:3)

New Datatable具有以下功能,用于突出显示该行:

"rowCallback": function( row, data, index ) {
        if ( data[2] < data[4] ) {
          //Highlight the cell value
          $(row).find('td:eq(2)').css('color', 'red');
          //Highlight the row
          $(row).addClass("danger");
        }
}

答案 2 :(得分:0)

这是如何更改数据表行背景(DataTables 1.10.19)的方法

"fnRowCallback": function( nRow, aData, iDisplayIndex, iDisplayIndexFull ) {
        switch(aData['country_id']){
            case 1:
                $('td', nRow).css('background-color', '#dacfcf')
                break;
        }
    }