2015-09-26 81 views
0

我工作的一個3歲的GXT項目。我有一個可編輯網格,我想在編輯一個細胞,細胞說A,另一個細胞,細胞說B,同一行的更新它的價值。事實上,單元B必須代表基於單元A的字段值的一些計算。下面是我用捉對小區A」場的變化代碼:GXT 2.2.4網格行編輯

cellAField.addKeyListener(new KeyListener() { 
    @Override 
     public void componentKeyUp(ComponentEvent event) { 
      try { 
       computeValueOfCellB(cellAField.getValue().doubleValue()); 
      } catch (Throwable e) { 
       Log.warn(e.getMessage()); 
      } 
     } 
}); 

,這裏是我做什麼來計算並更新單元格B值:

private void computeValueOfCellB(Double value_of_A) { 
    BeanModel bean = grid.getSelectionModel().getSelectedItem(); 
    bean.set("cell_A", value_of_A); 
    bean.set("cell_B", value_of_A - someDoubleValue); 
    grid.getStore().update(bean); 
} 

以及我更新商店新豆,小區B的值不會顯示在網格的行編輯器,以顯示電池B的價值,我必須叫grid.getView().refresh(false);看到細胞B'value改變,因爲我改變小區A的價值有沒有辦法不達到這個重繪整個網格?當我更新商店時,網格應顯示新值不是嗎?我正在使用GXT 2.2.4。

回答

0

你是對的。你將不得不顯式調用refresh()。 如果您想避免調用refresh(),則必須將網格存儲中的自動提交標誌設置爲true。

gridObj.getStore().setAutoCommit(true);