#gwt #handler #uibinder
#gwt #обработчик #uibinder
Вопрос:
У меня проблема с этой странной вещью в GWT
когда я устанавливаю для своего uibinder значение getBody().addpend(), событие не запускается, но оно работает, когда я использую RootPanel.get().add(new p1()); работает. Похоже, это как-то связано с тем, как вы добавляете uibinder на страницу?
рабочее событие:: RootPanel.get().add(new p1());
not working:
Document.get().getBody().appendChild(new p1().getElement());`
обработчик событий выглядит:
not working event:: Document.get().getBody().appendChild(new p1().getElement());
not working event:: Document.get().getBody().appendChild(new p1().getElement());
@UiHandler ("bleh")
void handleClick(ClickEvent e)
if (lEntidad.getText().length()>1)
lEntidad.setText("");
Комментарии:
1. Возможно, вас заинтересует RootPanel.getBodyElement() . Подробнее о RootPanel.get()
Ответ №1:
Я не вижу весь ваш код, чтобы подтвердить это, но если вы добавляете виджеты в свое приложение с помощью getElement() , то любые события, которые вы добавляете через gwt, не будут проходить. За кулисами есть специальная логика событий, которая обрабатывает GWT, чтобы все работало в безопасной среде с утечкой памяти.
Вместо использования Document.appendChild()
вы должны использовать любой ваш родительский виджет или любой корень вашего ui.xml файл есть. Например, an HTLMPanel
. Добавьте свой новый виджет непосредственно к нему, тогда ваши события в виджете должны пройти.
Краткие сведения
Не добавляйте элементы, если у вас есть событие для элемента. Вместо этого добавьте виджеты. Это решило проблему, когда у меня это произошло.