ExtJS 4将背景颜色设置为单元格

时间:2014-10-01 20:02:56

标签: extjs4

在ExtJS 4中是否有办法为整个表格中的单元格添加背景颜色,这取决于单元格中的值而不是列上的值?

3 个答案:

答案 0 :(得分:2)

将渲染器添加到列:

renderer: function (val, metadata, record) {
var backgroundColor = null;
if (val) {
    if (val == 1) backgroundColor = "green";
    if (val == 2) backgroundColor = "red";                   
}
metadata.style = 'background-color: ' + backgroundColor + ';';               
return '';

}

以下是一个工作示例:https://fiddle.sencha.com/fiddle/b73

答案 1 :(得分:1)

这对我有用......

renderer : function(value, meta) {
    if(parseInt(value) > 0) {
        meta.style = "background-color:green;";
    } else {
        meta.style = "background-color:red;";
    }
}

答案 2 :(得分:1)

基本上你想要做的是:

为所有列创建1个渲染器:

columns:{
  defaults: {
     renderer: myrenderer
    },
   items:[
    //your column definitions here...   
  ]
}

渲染器是这样的:

var myrenderer = function(value, metaData, record, rowIndex, colIndex, store, view) {
if (value >= 0 && value < 25) {
    metaData.tdCls += 'x-change-cell-red';
} else if (value >= 25 && value < 50) {
    metaData.tdCls += 'x-change-cell-orange';
} else if (value >= 50 && value < 75) {
    metaData.tdCls += 'x-change-cell-yellow';
} else if (value >= 75 && value < 100) {
    metaData.tdCls += 'x-change-cell-green';
} else if (value === 100){
    metaData.tdCls +='x-change-cell-awesome-green';
}else {
    metaData.tdCls += 'x-change-cell-violet';
}
return value + '%';
}
相关问题