我在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');
};
}
答案 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。