extjs - 渲染后如何在ExtJS GridPanel viewconfig上动态更改getRowClass函数

标签 extjs extjs4

我有一个带有函数的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/

相关文章:

extjs - 如何将对象数组转换为模型对象数组

javascript - 如何在选择树网格上的复选框时获取其他列值

javascript - 在extjs中合并两个不同的json对象

javascript - 在 extjs4 中编辑时需要对齐复选框、添加多条记录和查看日期字段?

javascript - ExtJS v4.0 - 带有自定义纯色条的条形图

date - 在 Extjs 中转换日期

javascript - 将选定的记录加载到模态窗口

javascript - ExtJS - 如何遍历商店并获取在特定列中找到的每个项目的总数

javascript - 在浏览器中禁用 PDF 中嵌入的 JavaScript(XSS 攻击)

extjs - 如何一次过滤具有多个值的商店?