我有Ext.grid.Panel
一个函数返回一个自定义类,用于通过重写getRowClass函数对网格中的行进行颜色编码.这很好用,但我想让用户可以选择更改网格着色的标准.下面的示例,我按"严重性"属性着色,但我想将其更改为"状态",例如.有没有一种方法,我可以动态改变的getRowClass
功能,或对电网可能整个viewconfig,并有电网改色,电网已经被渲染后?
alarmsGrid = Ext.create('Ext.grid.Panel', {
title: 'Netcool Alarms',
id: 'Netcool Alarms',
columnLines: true,
store: alarms_store,
loadMask: true,
stripeRows: true,
features: [alarmsGroupingFeature],
viewConfig: {
getRowClass: function(record, rowIndex, rowParams, store){
return record.get('severity').toLowerCase();
}
},
Run Code Online (Sandbox Code Playgroud)
这只是因为你的做法是错误的。几乎所有类型的配置对象仅在类的实例化时相关,并且之后不会产生任何影响。所以你需要获取视图实例本身来直接更改那里的属性(方法)。要从评论中获取示例,您需要这样写
alarmsGrid.getView().getRowClass = function(record, rowIndex, rowParams, store){
return record.get('status').toLowerCase();
}
Run Code Online (Sandbox Code Playgroud)
参见JSFiddle