2017-09-11 20 views
0

我使用ExtJS的6.0.2,我有一个itemselector以下信息:ExtJS的6 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的一个AfterRender:

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

...但由于某些原因,CSS将不会显示,即使删除if,新的CSS是从来没有应用到itemSelector(这正常工作在网格上)。所以我在这里问是否有人可以帮我找到解决这个问题的办法。

回答

1

问题是viewConfig已在渲染过程中应用于视图。

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

+0

感谢您的协助,但是当我尝试做grid.getView()。getRowClass,Ext.getCmp(...)。getView不是函数 – Chazz1

+1

@ Chazz1然后你的组件不是网格。如果您确定有网格,您可能必须先找到网格。您可以尝试使用'grid = component.down('grid')'或类似的任何组件获取网格。您可以使用Ext.ComponentQuery.query(“grid”)检查是否有网格,它应该为您提供应用程序中呈现的所有网格的列表。 – Alexander