2010-11-24 10 views
3

ich versuche, eindeutige ID zu setzen für UiBinder widget.but .my Konstruktor wie untengwt UiBinder gesetzt eindeutige 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

Das funktioniert für mich. Können Sie bitte etwas mehr Code zur Verfügung stellen? – z00bs

+0

verwendest du gwt2.1? Versuchen Sie, debug line auf system.out zu setzen. Ich habe versucht, es ist leer. DOM.createUniqueId() erstellt jedoch uniqueID, obwohl – cometta

+0

Ja, ich bin. Siehe mein Beispiel. – z00bs

Antwort

5

für mich Dies funktioniert suchen fail (mit 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> 

das Widget:

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

Dies erzeugt eine Ausgabe wie gwt-uid-# wobei # eine beliebige Zahl ist.

Der Rest Ihres Codes funktioniert? Es war oft passiert, dass ich einen Tippfehler oder dergleichen in der Datei ui.xml hatte, die keinen sichtbaren Fehler (d. H. Keine Stapelverfolgung) erzeugte, aber immer noch fehlerhaft war.