【问题标题】:uiBinder on Button Clickevent按钮单击事件上的 uiBinder
【发布时间】:2010-06-27 01:38:53
【问题描述】:

我正在尝试使用 uiBinder。我按照提供的教程 谷歌,但我不知道为什么clickevent不起作用?我想计算点击次数并将其显示在跨度中,它不起作用,我也放了 window.alert 但似乎根本没有调用事件处理程序!谁能帮我?我正在研究它几个小时,但找不到问题!

非常感谢

附: 下面是我的代码


<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));
 }

}

【问题讨论】:

  • 如果您以“常规”方式添加点击处理程序,代码是否有效,addClickHandler()
  • 您确定要关闭&lt;ui:UiBinder&gt; 标签吗?上面的代码中似乎缺少它。

标签: gwt uibutton uibinder


【解决方案1】:

您应该正确地将小部件添加到根面板。使用

RootPanel.get().add(uiProduct);

否则处理程序不会被初始化。

【讨论】:

    【解决方案2】:

    我遇到了完全相同的问题,这是结论:

    RootPanel.getBodyElement().appendChild(uiProduct.getElement()); - 不工作

    RootPanel.get().add(uiProduct); - 工作正常

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-12-18
      • 1970-01-01
      • 2016-11-19
      • 1970-01-01
      • 1970-01-01
      • 2013-05-11
      相关资源
      最近更新 更多