我正在使用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。
答案 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},