2010-02-13 5 views
16

Ich baue ein Widget mit UiBinder, und ich muss es in einem <span /> eingeschlossen haben, aber UiBinder gibt mir nur <div />. Z.B. <g:HTMLPanel /> =><div />. HorizonPanel, FlowPanel, VerticalPanel geben auch nur <div /> aus.Ich versuche, UIBinder zu bekommen, um mir eine Spanne zu geben, kein div

Kennt jemand eine Lösung?

+4

Sie lesen die Argumentation für divs über andere Tags in HTMLPanel der javadocs für die 'öffentlichen HTMLPanel (String-Tag, String html)' Ctor mit: http://code.google.com /p/google-web-toolkit/source/browse/trunk/user/src/com/google/gwt/user/client/ui/HTMLPanel.java#69. Kurz gesagt: es ist bitte IE:/ –

Antwort

24

Versuchen Sie folgendes:

<ui:UiBinder xmlns:ui='urn:ui:com.google.gwt.uibinder' 
     xmlns:g='urn:import:com.google.gwt.user.client.ui'> 
    <g:HTMLPanel tag="span"> 
     <!-- your stuff --> 
    </g:HTMLPanel> 
</ui:UiBinder> 
+0

Ehrfürchtig. Danke Bob. – user198313

+1

Problem ist, dass Sie den Inhalt nicht über ein ui: -Feld mit dieser Technik ändern können. – qwertzguy

0

Im Hinblick auf die Antwort oben von Robert (sorry ich kann nicht herausfinden, wie diese direkt kommentieren)

Dies wird nicht aus der Box arbeitet, als Widgets kann nicht in einfachen HTML platziert wird (Der Compiler wird Ihnen "Fehler: gefundenes Widget im HTML-Kontext") geben. Aber es gibt eine einfache Abhilfe:

<ui:UiBinder xmlns:ui='urn:ui:com.google.gwt.uibinder' 
      xmlns:g='urn:import:com.google.gwt.user.client.ui'> 
    <g:HTMLPanel> 
    <span> 
     <!-- Your content with widgets goes here --> 
    </span> 
    </g:HTMLPanel> 
</ui:UiBinder> 

Eine andere nützliche Sache zu erwähnen ist InlineHTML und InlineLabel Widgets fähig halten willkürliche HTML oder Nur-Text jeweils in einer <Spanne>

+0

Ich versuchte Bobs Lösung und es funktionierte gut mit Widgets im HTMLPanel. –

+0

mein Kommentar gilt für eine ältere GWT-Version - die, die in '10 – atamur

5

Sie halten eine <div> verwenden, aber nur Fügen Sie display: inline zu seinem CSS hinzu, wodurch es so angezeigt wird, als wäre es ein <span>.

Edit: festen Platz am Ende, wo ich sagte "div" aber gemeint "span".

+0

Brillante Lösung verfügbar war! – iTrout

Verwandte Themen