使用FlexTable或Grid,我想将多个FlowPanel添加到1个单元格中。我知道这可以通过将多个FlowPanel添加到1(父)FlowPanel并将父面板添加到单元格来实现。
只是想知道是否有办法将这些多个小部件添加到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 :(得分: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"));