2010-11-24 2 views
3

я пытаюсь установить уникальный идентификатор для UiBinder widget.but неудачу .my конструктор выглядеть, как показано нижеGWT UiBinder установить уникальный идентификатор

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):

щ. 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), но все же был ошибочным.