2013-03-19 61 views
1

使用FlexTable或Grid,我想將多個FlowPanel添加到1個單元格中。我知道這可以通過將多個FlowPanel添加到1(父級)FlowPanel並將父面板添加到單元中來實現。將多個小部件添加到1個單元格中?

想知道是否有方法將這些多個小部件添加到1個單元格中,而不將它們包裝到(父級)流程面板中?

(如下面的例子,我不想讓父母DIV,而是,我希望孩子div的直接標籤下出現。)

<TABLE> 
    <TR> 
     <td> 
      <div id="I-DO-NOT-WANT-THIS-PARENT-DIV"> 
       <div id="CHILD1"></div> 
       <div id="CHILD2"></div> 
       <div id="CHILD3"></div> 
       <div id="CHILD4"></div> 
      </div> 
     </td> 
    </TR> 
</TABLE> 

任何想法?

+0

我不知道是什麼排序算法帶給你實現這樣的東西。我不認爲它是可能的,每個細胞都是這樣設計的。無論如何,你可能有2種方法來解決這個問題:#1。使用絕對面板作爲單元格容器來構建自己的Flex表格,並覆蓋並複製所有方法[在我看來,永遠不會這樣做]。 #2。只是簡要說明你的問題,這使你想到這樣的事情,[希望你的查詢有一個很好的解釋]。無論如何感謝您花時間在這個評論上。 :) – Dipak 2013-03-19 19:48:36

+0

唯一的原因是,我想創建表的方式是假設我有1行和多列。在每一欄中,我都有不同的控件需要放置。根據我們的UI設計限制,我不想創建多行(每個div一個)。 – user1730159 2013-03-19 22:43:59

+0

你在尋找合併細胞的一種東西嗎? – Adarsha 2013-03-20 03:27:35

回答

0

您可以操縱dom並將元素移至其父母。隨着gwtquery是很簡單:

import static com.google.gwt.query.client.GQuery.*; 
... 
final FlowPanel panel = new FlowPanel(); 
panel.add(new Label("1")); 
panel.add(new Label("2")); 
panel.add(new Label("3")); 

final FlexTable table = new FlexTable(); 
table.setWidget(0, 0, panel); 
RootPanel.get().add(table); 

$(panel).children().appendTo($(panel).parent()); 

如果你想與gquery你甚至可以促進表的<td>Panel並繼續添加小部件到它:

HTMLPanel newpanel = $(panel).parent().as(Widgets).panel().widget(); 
panel.removeFromParent(); 
newpanel.add(new Label("4")); 
+0

我相信它會工作,但我不想做任何DOM操作。我想知道是否有一個簡單的GWT解決方案,例如,如果有任何我不知道的FlexTable或Grid API。無論如何,感謝您的解決方案。 – user1730159 2013-03-19 22:44:23

+0

對此,沒有GWT核心解決方案,所有基於表格的小部件都接受每個單元的獨特小部件。 – 2013-03-19 22:53:40

相關問題