Extjs 6 ItemSelector 如何以编程方式绘制行

Extjs 6 ItemSelector how to programmatically paint rows

我正在使用 ExtJS 6.0.2,我有一个 itemselector,其中包含以下信息:

                               {
                                        xtype: 'itemselector',
                                        name: 'itemselector',
                                        id:'issuerSelector',
                                        buttons: ['add', 'remove', 'allleft','allright'],
                                        height: 300,
                                        width: '30%',
                                        store: 'ItemsStore',
                                        displayField: 'code_isin',
                                        valueField: 'id_valeur',
                                        fromTitle: "fromList",
                                        toTitle: 'toList',
                                        listeners: {
                                          afterrender: function (selector) {
                                              selector.onDisable();
                                          },
                                          change: 'someFuncHere'
                                        },
                                }

我想要的是,在加载 itemselector 数据后,列表 "fromField" 中的任何数据具有:

flag : 1

...应该画不同的。 (注意:我不想为此做一个 "onChange" 事件,因为我希望它在加载时识别,而不是在更改后识别)。

我尝试在 ItemSelector 的后渲染器上使用它:

Ext.getCmp('issuerSelector').viewConfig = { 
                    getRowClass    : function( record ) { 
                        if ( record.data.flag == 1 ) {
                            return 'newCss';
                        }
                    }
                }

...但是由于某种原因 css 不会显示,即使删除了 if,新的 css 也永远不会应用于 itemSelector(这通常适用于网格) .所以我来这里是想问问有没有人能帮我找到解决这个问题的方法。

问题是 viewConfig 已在渲染期间应用于视图。

您可能想要检查的是 grid.getView().getRowClass = function() ... 是否有效。