2010-11-24 22 views
3

je tente de définir id unique pour uibinder widget.but échouent .mon constructeur ressembler à ceciGWT uibinder défini ID unique

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

Cela fonctionne pour moi. Pouvez-vous s'il vous plaît fournir plus de code? – z00bs

+0

utilisez-vous gwt2.1? essayez de mettre la ligne de débogage sur system.out. J'ai essayé c'est vide. DOM.createUniqueId() crée uniqueID si – cometta

+0

Ouais je suis. Voyez mon exemple. – z00bs

Répondre

5

Cela fonctionne pour moi (en utilisant 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> 

le widget:

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

Ceci crée une sortie comme gwt-uid-# où # est un nombre arbitraire.

Le reste de votre code fonctionne? Il m'arrivait souvent aussi d'avoir une faute de frappe ou autre dans le fichier ui.xml qui ne produisait aucune erreur visible (c'est-à-dire pas de pile) mais qui était encore erronée.