uiBinder на кнопке Clickevent - PullRequest
       17

uiBinder на кнопке Clickevent

5 голосов
/ 27 июня 2010

Я пытаюсь использовать uiBinder.Я следовал учебному пособию, предоставленному Google, но я не знаю, почему не работает clickkevent?Я хочу посчитать количество кликов и показать его в промежутке, он не работает, я также поставил window.alert, но кажется, что обработчик событий вообще не вызывается!Может кто-нибудь мне помочь?Я пару часов работаю над этим, но не могу найти проблему!

Большое вам спасибо

PS Ниже мой код


<ui:UiBinder xmlns:ui="urn:ui:com.google.gwt.uibinder"
   xmlns:g="urn:import:com.google.gwt.user.client.ui">
   <ui:style>
   </ui:style>
   <g:HTMLPanel>
    <table>
        <tr>
            <td><img ui:field='imgPrd'/></td>
            <td>
               <span ui:field='lblNum'></span>
                <g:Button ui:field='btnAdd'></g:Button>
            </td>
        </tr>
    </table>
   </g:HTMLPanel>


public class uiProductList extends Composite {

@UiField Button btnAdd;
@UiField ImageElement imgPrd;
@UiField SpanElement lblNum;

int count;
private static uiProductListUiBinder uiBinder =
GWT.create(uiProductListUiBinder.class);

interface uiProductListUiBinder extends UiBinder<Widget,
uiProductList> {
}

public uiProductList() {
   initWidget(uiBinder.createAndBindUi(this));
}


@UiHandler("btnAdd")
void handleClick(ClickEvent e) {
  Window.alert("test");
  count++;       
  lblNum.setInnerText(Integer.toString(count));
 }

}

Ответы [ 2 ]

6 голосов
/ 27 июня 2010

Вы должны правильно добавить свой виджет в корневую панель. Используйте

RootPanel.get () добавить (uiProduct).

В противном случае обработчики не инициализируются.

2 голосов
/ 10 февраля 2011

У меня была точно такая же проблема, и вот вывод:

RootPanel.getBodyElement().appendChild(uiProduct.getElement()); - НЕ РАБОТАЕТ

RootPanel.get().add(uiProduct); - РАБОЧИЙ ШТРАФ

...