2016-08-08 2 views
0

Нижняя часть моего кода вызвала рекурсивный вызов метода onEditorExit. Если я удалю вызов setData, то рекурсии не произойдет. Каким может быть обходной путь?Обработчик события EditorExit, называемый рекурсивно

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

Теперь проверьте консольный вывод -

Console Screenshot

+0

Какое сообщение об ошибке получено? – mxlse

+0

Пожалуйста, проверьте прилагаемый скриншот. – ifti24

+1

Что вы пытаетесь достичь, с точки зрения пользователя? – claudiobosticco

ответ

0

Это не будет работать, потому что каждый раз, когда вы звоните setData() редактор будет сгореть editorExit событие в бесконечном цикле (не рекурсивно). Кстати, вызов setData() в том, как вы это делаете, заменит все ваши записи в ListGrid одной новой пустой записью. Это похоже на неудобный пользовательский интерфейс.

Похоже, вы хотите создать и начать редактирование новой записи, когда вы выходите из последней. Для того, чтобы сделать это в ListGrid, вы используете:

grid.setListEndEditAction(RowEndEditAction.NEXT);

Это все, что вам нужно сделать для того, чтобы заставить его работать.

Смежные вопросы