2011-06-27 112 views
4

我們現有的UI建有UiBinder的,其ui.xml文件包含以下層次:如何使用UIBinder混合使用HTML和GWT小部件?

<ui:UiBinder> 
<div> 
Multiple <span> or <a> separated by verbatim HTML (like | separators). 

我需要更換一個列表框其中一個錨點。

有沒有一種方法可以在不用HTMLPanel替換div的情況下進行轉換,並將所有的錨都改爲其他的東西?

如果我嘗試在這裏粘貼一個gwt:ValueListBox或gwt:ListBox,我收到一條錯誤消息,說我不能混合這兩個。我也不能在UIBinder下有多個孩子(例如div和HTMLPanel)。

如果我唯一的選擇是將所有內容都轉換爲窗口小部件,那麼什麼是適當的轉換和項目?

+0

你爲什麼不添加HTMLPanel到粘合劑,然後把你的div和HTML中的其他人呢? – jonasr

回答

12

在UIBinder中,HTMLPanel可以包含HTML元素和GWT小部件,但HTML元素只能包含其他HTML元素。

只需將頂級div替換爲HTMLPanel,然後僅替換特定的<a>錨點與gwt:ListBox

+4

...當然,在您的Java代碼中,您可能必須「擴展Composite」和「initWidget」,而不是「擴展Widget」和「setElement」。 「來自HTMLPanel javadoc的 –

+0

:」一個包含HTML的面板,它可以將子窗口小部件附加到該HTML中標識的元素上。「 - 這表明HTML元素實際上可以包含Widgets – klarki

0

像這樣

<gwt:HTMLPanel> 
    <div align="center"> 
     <gwt:VerticalPanel res:styleName="style.background"> 
相關問題