代码之家  ›  专栏  ›  技术社区  ›  cometta

GWT UIBinder集唯一ID

  •  3
  • cometta  · 技术社区  · 15 年前

    我尝试为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
    }
    
    1 回复  |  直到 15 年前
        1
  •  5
  •   z00bs    15 年前

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

    u.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 没有产生任何可见错误(即没有stacktrace)但仍然是错误的文件。

    推荐文章