我要求网格中的每个单元格可以根据某些条件从可用的8种颜色中获取任何颜色。之后,我需要在网格面板下方显示这8种颜色的颜色图例及其标签名称。有人可以建议我,如果ExtJS4有网格的任何类型的功能或任何想法如何解决这个问题。
/ ** CSS * /
的例子.r1 .x-grid-cell-inner {
background-color: #f0f6ff;
color: #09d6ff;
border-left: 1px dotted rgba(2, 3, 3, 0.27);
border-right: 1px dotted rgba(2, 3, 3, 0.27);
}
.r2 .x-grid-cell-inner {
background-color: rgba(255, 183, 189, 0.22);
color: #900;
border-left: 1px dotted rgba(2, 3, 3, 0.27);
border-right: 1px dotted rgba(2, 3, 3, 0.27);
}
.r3 .x-grid-cell-inner {
background-color: #e2ffe2;
color: #090;
border-left: 1px dotted rgba(2, 3, 3, 0.27);
border-right: 1px dotted rgba(2, 3, 3, 0.27);
}
.r4 .x-grid-cell-inner {
background-color: rgba(255, 233, 228, 0.12);
color: #99890e;
border-left: 1px dotted rgba(2, 3, 3, 0.27);
border-right: 1px dotted rgba(2, 3, 3, 0.27);
}
.r5 .x-grid-cell-inner {
background-color: rgba(186, 242, 250, 0.10);
color: #1a4f99;
border-left: 1px dotted rgba(2, 3, 3, 0.27);
border-right: 1px dotted rgba(2, 3, 3, 0.27);
}
.r6 .x-grid-cell-inner {
background-color: rgba(255, 242, 239, 0.23);
color: #ff7f00;
border-left: 1px dotted rgba(2, 3, 3, 0.27);
border-right: 1px dotted rgba(2, 3, 3, 0.27);
}
.r7 .x-grid-cell-inner {
background-color: rgba(228, 224, 255, 0.7);
color: rgba(29, 7, 255, 0.60);
border-left: 1px dotted rgba(2, 3, 3, 0.27);
border-right: 1px dotted rgba(2, 3, 3, 0.27);
}
.r8 .x-grid-cell-inner {
background-color: rgba(255, 233, 228, 0.32);
color: rgba(255, 22, 12, 0.65);
border-left: 1px dotted rgba(2, 3, 3, 0.27);
border-right: 1px dotted rgba(2, 3, 3, 0.27);
}
.n1 .x-grid-cell-inner {
background-color: rgb(255, 255, 255);
color: rgb(255, 127, 0);
border-left: 1px dotted rgba(2, 3, 3, 0.27);
border-right: 1px dotted rgba(2, 3, 3, 0.27);
}
答案 0 :(得分:1)
我必须做类似的事情。
我应用了一种颜色"使用列renderer
配置
在我的情况下,该值确定了细胞的颜色。
这是渲染器:
// ... other column configs
renderer: function(value, meta, record) {
switch(value) {
case 1 :
meta.tdCls = 'orange-cell';
break;
case 2 :
meta.tdCls = 'light-orange-cell';
break;
case 3 :
meta.tdCls = 'green-cell';
break;
}
// I only had a color in my cell without any kind of value
// so didn't include the following return statement. I added it here
// just so you would know that you can have it also.
return value;
}
CSS类看起来像这样:
.orange-cell {
background-color: #ffbb22 !important;
}
.light-orange-cell {
background-color: #33cc55 !important;
}
.green-cell {
background-color: #ffeecc !important;
}
这适用于ExtJS 4.1.0
答案 1 :(得分:0)
在网格定义中添加类似内容:
viewConfig: {
getRowClass: function(record, rowIndex, rowParams, store){
return record.get("valid") ? "row-valid" : "row-error";
}
}
有关详细信息,请参阅http://docs.sencha.com/ext-js/4-0/#!/api/Ext.view.Table-method-getRowClass。
注意:这适用于各行。你真的需要逐个细胞着色吗?