我有一个带有函数的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();
}
},
最佳答案
这仅仅是因为您做错了方法。几乎所有类型的配置对象仅在类的实例化时才相关,此后将不起作用。因此,您需要获取 View 实例本身以直接更改那里的属性(方法)。要以评论为例,您需要像这样写
alarmsGrid.getView().getRowClass = function(record, rowIndex, rowParams, store){
return record.get('status').toLowerCase();
}
参见 JSFiddle
关于extjs - 渲染后如何在ExtJS GridPanel viewconfig上动态更改getRowClass函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14072153/