3

我尝试为 uibinder 小部件设置唯一 ID。但失败。我的构造函数如下所示

public CustomUIWidget() {



    initWidget(uiBinder.createAndBindUi(this));

     this.getWidget().getElement().setId(DOM.createUniqueId());

         System.out.println(this.getWidget().getElement().getId());  //put debug line here, value is empty
}
4

1 回答 1

5

这对我有用(使用 GWT 2.1):

ui.xml:

<!DOCTYPE ui:UiBinder SYSTEM "http://dl.google.com/gwt/DTD/xhtml.ent">
<ui:UiBinder xmlns:ui="urn:ui:com.google.gwt.uibinder" xmlns:g="urn:import:com.google.gwt.user.client.ui">

    <g:HTMLPanel>
        <g:Label text="test" />
    </g:HTMLPanel>
</ui:UiBinder>

小部件:

public TestView() {
    initWidget(uiBinder.createAndBindUi(this));
    getWidget().getElement().setId(DOM.createUniqueId());
    System.out.println(getWidget().getElement().getId());
}

这会创建一个输出,例如gwt-uid-#其中 # 是任意数字。

您的其余代码是否正常工作?我也经常发生我的ui.xml文件中有错字或类似错误,没有产生任何可见的错误(即没有堆栈跟踪),但仍然是错误的。

于 2010-11-24T13:52:05.397 回答