EXTJS:如何根据响应中的a属性在TreeGrid中绘制不同颜色的行

EXTJS:How to paint a row in different color in TreeGrid based on the a property in Response?

本文关键字:TreeGrid 绘制 颜色 何根 EXTJS 响应 属性      更新时间:2023-09-26

我使用tregrid来显示数据。

问题:如何根据其中一列的值以不同的颜色绘制一行?

我们可能无法使用我们通常在普通网格中使用的行渲染器。我可以使用列渲染从列渲染器内部绘制整行吗?

在gridPanel上绘制行可以使用gridPanel上的viewConfig配置来完成-

viewConfig: {
      getRowClass: function(record, rowIndex, rowParams, store) {
                              return record.get('mycls');
                          }
}

然而,我在使用SenchaArchitect时遇到了一个奇怪的问题。树网格面板默认有viewConfig属性可用,但当我搜索这个属性来添加我的逻辑时,Sencha编辑器没有显示它,我最终通过Sencha架构师手动添加viewConfig :{}。这导致我的网格面板实例中有2个视图配置(一个是我的实现,一个是默认的)。因此,我的viewConfig对象被默认的空viewConfig对象覆盖,我的逻辑从未执行过。

为了克服这个问题,我不得不保持一个脏检查,并在afterRender函数中实现这个逻辑,如下所示。

Grid.getView().getRowClass = function(record, rowIndex, rowParams, store){ 
    return record.get('mycls');
}

这是Sencha Architect的一个潜在bug。