SmartGWT ListGrid InvalidateCache不会放弃未保存的编辑

SmartGWT ListGrid InvalidateCache不会放弃未保存的编辑,gwt,smartgwt,Gwt,Smartgwt,我有一个关于SmartGWT ListGrid的问题 下面的用例解释: 有一个ComboBoxItem中加载的记录很少。 ComboBoxItem下面有ListGrid ComboItem具有捕获用户更改的ChangeEvent(未更改)处理程序。 此更改还会触发ListGrid上的fetchData,ListGrid将填充相同的数据 现在,在用户对ListGrid进行一些编辑而不保存它们之后(setAutoSaveEdits为false), 用户继续并更改ComboBoxItem中的选择,它实

我有一个关于SmartGWT ListGrid的问题

下面的用例解释:

有一个ComboBoxItem中加载的记录很少。 ComboBoxItem下面有ListGrid

ComboItem具有捕获用户更改的ChangeEvent(未更改)处理程序。 此更改还会触发ListGrid上的fetchData,ListGrid将填充相同的数据

现在,在用户对ListGrid进行一些编辑而不保存它们之后(setAutoSaveEdits为false), 用户继续并更改ComboBoxItem中的选择,它实际上调用ListGrid上的获取操作,然后理想情况下,我应该收到确认放弃编辑。(使用“确定”、“保存”和“取消”按钮)

但是,在调用ListGrid.fetchData之前,我调用了ListGrid.InvalidateCache。调用invalidate cache使ListGrid无法捕获ListGrid的未保存编辑(,如未显示confirm discard edit(确认放弃编辑)弹出窗口),这使我认为未保存的编辑已被放弃,但不会放弃编辑。下次我选择同一条记录时,它将显示编辑值仍然存在的记录

ListGrid上的InvalidateCache是否也应该放弃未保存的编辑

下面是我的示例代码

    ComboBoxItem fileSelectItem = new ComboBoxItem("Select Item",
            "Select a Record");
    fileSelectItem.setAddUnknownValues(Boolean.FALSE);
    fileSelectItem.setValueField("id");
    fileSelectItem.setDisplayField("description");
    fileSelectItem.setRequired(true);
    fileSelectItem.setWidth(600);

    final ListGrid grid = new ListGrid();

    fileSelectItem
            .addChangeHandler(new com.smartgwt.client.widgets.form.fields.events.ChangeHandler() {

                @Override
                public void onChange(ChangeEvent event) {
                    grid.invalidateCache();
                    grid.fetchData(new Criteria("key", "value"));
                }
            });

在文档中的invalidateCache过程中,没有关于放弃更改的任何内容: 无效缓存刷新从服务器加载期间缓存的数据。 您应该使用discardAllEdits方法手动放弃更改: