我想基于cfgrid中的状态条件更改单元格的颜色。根据数据更改cfgrid(html)单元格颜色
例如:
- 如果记录的状态为过期,该小区将变为红色粗体姗姗来迟。
- 如果记录的状态为“到期”(30天内),则单元格将变为黄色并带有粗体显示。
- 如果记录的状态为当前(由于日期超过30天),那么细胞将是绿色与当前以粗体....
我只能找到渲染cfgridrow和CFGRIDCOLUMN。
我想基于cfgrid中的状态条件更改单元格的颜色。根据数据更改cfgrid(html)单元格颜色
例如:
我只能找到渲染cfgridrow和CFGRIDCOLUMN。
您应该使用ExtJS提供的列渲染器属性。一个列的渲染器获取三个参数,第二个是一个元对象,您可以在其中设置一个名为attr的属性,该属性被设置为单元格dom元素上的属性。您可以为例如电池的一些CSS样式:在Ext.grid.ColumnModel documentation
var renderer = function(value, meta, record){
if(value == "Overdue") { meta.attr = 'style="color:red;font-weight:bold"'; }
if(value == "Due") { meta.attr = 'style="color:yellow;font-weight:bold"'; }
if(value == "Current") { meta.attr = 'style="color:green"'; }
return value;
}
检查setRenderer我使用类似的东西,你需要列在网格中显示截止日期:
{
header: 'Expiration Date',
dataIndex: 'ExpireDate',
renderer: function (value, metaData, record, rowIndex, colIndex, store) {
if (record.get ('ExpireDate') < new Date ().clearTime ()) {
metaData.css += ' y-grid3-expired-cell';
value = '';
}
if (record.get ('ExpireDate').format ('m/d/Y') == '12/31/9999') {
metaData.css += ' y-grid3-non-expired-cell';
value = '';
}
value = (value == '') ? '' : record.get ('ExpireDate').format ('m/d/Y');
}
return value;
}
},
使用css类的
是更健壮的解决方案,我的定义如下定义:
.y-grid3-expired-cell {
background: #AA0000;
}
.y-grid3-non-expired-cell {
background: #00AA00;
}
只有你需要做的是添加自己的逻辑和风格...
+1谢谢。 为了将来的参考,您可以像这样获得列模型: 'var ruleGrid = ColdFusion.Grid.getGridObject('ruleGrid'); ruleGrid.colModel.setRenderer(6,function(value,meta,record){...});' – Wernsey 2011-09-06 11:05:47