GXT 2.2.4 网格行编辑器
GXT 2.2.4 grid row editor
我正在从事一个已有 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.
你是对的。您将必须显式调用 refresh()。
如果您想避免调用 refresh(),您必须将网格存储中的自动提交标志设置为 true。
gridObj.getStore().setAutoCommit(true);
我正在从事一个已有 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.
你是对的。您将必须显式调用 refresh()。 如果您想避免调用 refresh(),您必须将网格存储中的自动提交标志设置为 true。
gridObj.getStore().setAutoCommit(true);