2014-10-02 102 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

相關問題