2015-09-26 80 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);