GXT 2.2.4网格行编辑器

时间:2015-09-26 16:23:10

标签: gxt

我正在研究一个3岁的GXT项目。我有一个可编辑的网格,我想在编辑一个单元格时,比如单元格A,另一个单元格,比如同一行的单元格B,更新它的值。事实上,小区B必须表示基于小区A的字段值的一些计算。这是我用来捕获单元格A'字段:

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);
}

当我使用新bean更新商店时,单元格B的值未显示在网格的行编辑器中,以显示单元格B的值我必须调用grid.getView().refresh(false);来当我更改单元格A的值时,看到单元格B'值的变化。有没有办法在不重绘整个网格的情况下实现这一点?当我更新商店时,网格应显示新值不是吗?我正在使用GXT 2.2.4。

1 个答案:

答案 0 :(得分:0)

你是对的。您必须显式调用refresh()。 如果要避免调用refresh(),则必须将gridstore中的auto-commit标志设置为true。

gridObj.getStore().setAutoCommit(true);