2014-10-02 64 views
0

我有面板里面有组合框和网格面板。我需要根据组合框中的新值和旧值,使用组合框中的“更改”操作来转换网格中的每个值。 我加入到组合框旁边的RAW:如何转换网格中每个单元格的显示值?

listeners: { 
    change: function(field, newValue, oldValue){ 
     switch(JSON.stringify({"from": oldValue, "to": newValue}){ 
      case ..: 
       makeSmthWithEveryCell(); 
       break(); 
      case ..: 
       makeSmthElse(); 
       break(); 
      ... 
     } 
    } 
} 

我需要根据的情况下,已经选择了写转换器的每一个细胞。 我想,它会是这样的行事:

myGrid.getStore().each(function(rec){ 
     convertCellValue(???); 
    }); 

任何想法?

+0

ExtJS的哪个版本您使用的?并根据每种情况你是否要更新单元格的不同记录....? – lombardo 2014-10-02 14:42:49

+0

Extjs 4.2。我需要通过更改组合框来更新一个网格中的所有单元格(例如,从弧度到渐变)。 – yavalvas 2014-10-02 18:51:55

回答

1

是的,你几乎有解决方案,只需添加以下代码每个函数内部:

myGrid.getStore().each(function(rec){ 
    rec.set('myField',myCombo.getValue()); 
},this); 
myGrid.getStore().commitChanges(); 
//add the following line only if the grid data is not updated 
myGrid.getView().refresh(); 
+0

这不是完全的决定。我需要记录rec中的每个单元格,并根据选定的cb值更改值。所以我应该得到单元格的值并对这个值进行转换(例如,从弧度到渐变)。我可以多次写rec.set,但是这种情况是否正确? – yavalvas 2014-10-03 06:06:15

+0

而且我可以写几次rec.get。任何简短的决定? – yavalvas 2014-10-03 06:23:48

+0

您可以创建一个渲染器函数,在所有应用单元格中进行转换和重用,并在该函数中使用组合框选定的值,并在更改时调用myGrid.getView()。refresh(); – lombardo 2014-10-03 17:08:22

相关问题