我有jquery数据表,并希望根据单元格内容设置样式属性(颜色和背景颜色)。 表格动态变化,因此每次更改单元格内容时都无法重绘整个表格。
有办法做到这一点吗?
我考虑使用column rendering,每次编辑单元格时都会调用它,并且可以控制数据显示,但我不确定这是最好的方法。另外渲染回调获取单元格数据而不是td。
谢谢!
从rowDrawCallback调用时,我使用了:
"fnRowCallback": function (nRow, aData, iDisplayIndex, iDisplayIndexFull) {
if (!aData || aData.length == 0) return;
if(columns.indexOf(INDEX_STAT) >= 0) {
var state = aData[INDEX_STAT].state;
var exitCode = aData[INDEX_STAT].exitCode;
var statIndex = columns.indexOf(INDEX_STAT);
var statSelector = $('td', nRow).eq(statIndex);
if (!state)
log("undef state");
ResultsModule.updateStatusCellInfo(statSelector, state, exitCode);
}
}
var ResultsModule = {
updateStatusCellInfo: function(selector, state, exitCode){
var mapper = ResultsModule.getTestResults(state, exitCode).map;
var currentStatusString = mapper.status;
var currentStatusColor = mapper.color;
var currentStatusBgColor = mapper.bgcolor;
if (currentStatusString) selector.text(currentStatusString); // updating status as text
else selector.text(Status.None);
if (currentStatusColor) selector.css('color',currentStatusColor); // seting status color from mapper
if (currentStatusBgColor) selector.css('background-color',currentStatusBgColor); // seting status color from mapper
}
}
答案 0 :(得分:0)
我用这个column.render,在绘制之前调用了单元格。 也许它不是功能目标,但它完成了工作:)。
获得td可以通过以下方式完成:
var cell = meta.settings.aoData[meta.row].anCells[meta.col];
var statSelector = $(cell);
selector.css('color', "");
selector.css('background-color',"");
有关从渲染函数中获取DOM单元格的更多信息,请参阅this discussion。