将多个小部件添加到1个单元格中?

时间:2013-03-19 16:18:29

标签: gwt flextable

使用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>  

有什么想法吗?

1 个答案:

答案 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"));