2010-11-24 53 views
3

我嘗試設置唯一id UiBinder的widget.but失敗。我的構造看起來像下面GWT 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 
} 
+0

這適用於我。你能否提供一些更多的代碼? – z00bs 2010-11-24 13:38:22

回答

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文件中有一個輸入錯誤或類似錯誤,它沒有產生任何可見的錯誤(即沒有堆棧跟蹤),但仍然是錯誤的。