数据表使用其他列中的值更改单元格的类

时间:2018-06-19 16:12:48

标签: jquery datatables

我正在使用jquery数据表,并且具有以下代码:

activitiesTable = $('#activitiesTable').DataTable({
      scrollX: true,
      serverSide: true,
      processing: true,
      stateSave: true,
      ajax: {
        url: "...",
        type: "POST",
        data: function ( d ) {
          $.extend(d,ajaxData());
        },
        dataType: "JSON"
      },
      columns: [
        { data: function ( row, type, val, meta ) {
          if (row.jul_from_otl == 1){return row.jul_otl;}else{return row.jul_user;}
          }, 
          createdCell: function (td, row, col) {
              if(row.jul_from_otl == 1){
                $(td).css('color', 'red');
              }
          },
          width: '30px', searchable: false}, 
        { name: 'jul_user', data: 'jul_user', width: '30px', searchable: false , visible: false},
        { name: 'jul_otl', data: 'jul_otl', width: '10px', searchable: false , visible: false},
        { name: 'jul_from_otl', data: 'jul_from_otl', width: '10px', searchable: false , visible: false},
...

因此您可以看到有1列是第二列或第三列的值,具体取决于第四列的值。如果第四列为0,则第一列具有第二列的值;如果第四列为1,则使用第三列的值。

它工作正常,但如果第4列为1,我也想更改单元格的颜色。我尝试了createdCell,但它从未起作用:(。

我也尝试使用:

data: function ( row, type, val, meta ) {
          alert (row.jul_from_otl)
},

然后我收到很多警报,它们的值为1或0。

但是如果我用createdCell这样的话:

createdCell: function (td, row, col) {
              alert(row.jul_from_otl);
          },

我一直都不确定。所以我猜行值没有传递给createdCell。

1 个答案:

答案 0 :(得分:0)

好的,我现在明白了,这有点令人困惑,但是您需要使用row访问数据中的数据值:...但是您需要使用rowData访问createdCell中的值。

所以最终看起来像这样:

{ data: function ( row, type, val, meta ) {
          if (row.jul_from_otl == 1){return row.jul_otl;}else{return row.jul_user;}
          }, 
          createdCell: function (td, cellData, rowData, row, col) {
              if(rowData.jul_from_otl == 1){
                $(td).css('color', 'green');
              }
          },
          width: '30px', searchable: false},