EditExit事件处理程序递归调用

时间:2016-08-08 11:29:48

标签: gwt smartgwt

我的代码的下面部分导致onEditorExit方法的递归调用。如果我删除setData调用,则不会发生递归。 什么是解决方法?

myGrid.addEditorExitHandler(new EditorExitHandler() {
    public void onEditorExit(EditorExitEvent event) {
        GWT.log("Hello");
        myGrid.setData(new ListGridRecord());
    }
});

现在检查控制台输出 -

Console Screenshot

1 个答案:

答案 0 :(得分:0)

它不起作用,因为每次调用setData()时,编辑器都会在无限循环中触发editorExit事件(不递归)。顺便说一句,以你正在进行的方式调用setData()将用ListGrid中的所有记录替换一个新的空记录。这似乎是令人不安的用户体验。

当您跳出最后一个记录时,您似乎想要创建并开始编辑新记录。要在ListGrid中执行此操作,请使用:

grid.setListEndEditAction(RowEndEditAction.NEXT);

这就是你需要做的就是让它运转起来。