【问题标题】:GXT 2.2.4 grid row editorGXT 2.2.4 网格行编辑器
【发布时间】:2015-12-08 18:28:28
【问题描述】:

我正在从事一个已有 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); 以查看单元格 B' 值在我更改值时发生变化单元格 A。有没有办法在不重绘整个网格的情况下实现这一点?当我更新商店时,网格应该显示新值不是吗?我正在使用 GXT 2.2.4。

【问题讨论】:

    标签: gxt


    【解决方案1】:

    你是对的。您必须显式调用 refresh()。 如果您想避免调用 refresh(),则必须将 gridstore 中的自动提交标志设置为 true。

    gridObj.getStore().setAutoCommit(true);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-02-09
      • 1970-01-01
      • 2011-09-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多