如何从extjs 4.2 grid获取行元素

时间:2014-06-17 18:04:17

标签: javascript extjs

我在Extjs 4.2中有一个网格,我需要获取行元素,以便我可以比较行值,然后在特定行上调用.addCls()。我试过.getNodes()但是我不能在节点上调用.addCls()。

我已经使用表单字段执行此操作,但我也需要使用网格行:

myForm.getForm().getFields().items[i].getEl().dom

更新:这就是我在使用表单字段时所做的事情,我需要对网格单元格执行类似的操作。最初,我说我需要在网格行中添加一个类,但实际上我需要在网格单元格中添加一个类。

var myFormAItems = myFormA.getForm().getFields().items;
var myFormBItems = myFormB.getForm().getFields().items;

for (i = 0; i < prodItems.length; i++) {
   if (myFormAItems[i].getEl().dom.textContent != myFormBItems[i].getEl().dom.textContent) {
        myFormAItems[i].addCls('highlightDiff');
   };
}

1 个答案:

答案 0 :(得分:3)

使用grid.getView().getNodes()获取网格的行,然后使用query()获取<td>代码,可以实现您的目标。

如果您只需要应用自定义类,则更简单:

您可以为网格中的每一行添加CSS类,从网格视图覆盖函数getRowClass()。网格配置中的选项viewConfig用于此目的。

Ext.create('Ext.grid.Panel', {
    // other options
    viewConfig: {
        getRowClass: function(record, rowIndex, rowParams, store){
            if (record.get('property') == 'value'){
                return 'my-custom-class';
            }
        }
    }
});

请检查此fiddle