我有一个Extjs编辑器网格面板,我必须根据另一个列值的值更改一列的css然后怎么做我不能使用渲染器功能,因为它在onload上工作是否有其他方式我我附加了我有性别列和id列的代码,所以当性别列选择男性时,ID的背景颜色应该更改为粉红色,否则不会这样做。
{
id: 'value',
name: 'value',
header: 'Gender',
dataIndex: 'insured',
width: 100,
editor: new fm.ComboBox({
typeAhead: true,
displayField: 'gender',
mode: 'local',
transform: 'gender',
triggerAction: 'all',
selectOnFocus: true,
forceSelection: true,
stripeRows: true,
lazyRender: true,
listeners: {
}
}
})
},
{
id: 'ID',
name: 'ID',
header: 'ID',
dataIndex: 'ID',
width: 100,
hidden: true,
editor: new fm.TextField({
allowBlank: true,
maxLength: 500
})
}
答案 0 :(得分:0)
这适用于简单渲染
<强> CSS:强>
.custom-column
{
background-color: #ccc;
}
<强> JavaScript的:强>
columns: [{
dataIndex: 'name',
renderer: function (value, meta) {
meta.css = 'custom-column';
return value;
}
}]
您可以使用getRowClass
在渲染过程中将自定义CSS类应用于行。
重写此函数以在期间将自定义CSS类应用于行 渲染。此函数应返回CSS类名(或空 string''表示无)将被添加到行的包装div中。至 应用多个类名,只需返回其中的空格分隔 字符串(例如'my-class another-class')。
<强>使用Javascript:强>
columns: [{
dataIndex: 'ID',
...
tdCls: 'ID' //add table css class
}],
viewConfig: {
getRowClass: function(record, index) {
var gender = record.get('insured');
if (gender === 0) {
//male
return 'gender-male';
} else if (gender === 1) {
//female
return 'gender-female';
} else {
//unknown
return 'gender-unknown';
}
}
}
其他 CSS:
.gender-male .ID {
background-color: #088da5;
}
.gender-female .ID {
background-color: #f799af;
}
.gender-unknown .ID {
background-color: #BADA55;
}