0

我有一个动态创建的 HtmlPanelGrid 工作正常。我想使用相同的数据,但这次将它们分组,它不会工作。当前层次结构是:

Parent(HtmlPanelGrid)
    |-->Child-1(HtmlPanelGrid)
        |-->Child-1-1(Label/CommandButton)
        |-->Child-1-2(Label/CommandButton)
    |-->Child-2(HtmlPanelGrid)
        |-->Child-2-1(Label/CommandButton)
        |-->Child-2-2(Label/CommandButton)

通常,我是这样展示的:

<h:panelGrid binding="#{configurationManagedBean.dynamicAddonGrid}"/>

其中 dynamicAddonGrid 表示父元素。但是,我想为每个第一级子元素显示一个新的 panelGrid。所以我把它改成这样:

<ui:repeat var="group" value="#{configurationManagedBean.dynamicAddonGrid.children}">
    <h:panelGrid binding="#{group}" />
</ui:repeat>

但它什么也没显示。这就是我在支持 bean 中创建此层次结构的方式:

HtmlPanelGrid dynamicAddonGrid = new HtmlPanelGrid();
for(int gridIndex = 0; gridIndex < addonGrids.size(); gridIndex++){
    AddonGrid currentGrid = addonGrids.get(gridIndex);

    HtmlPanelGrid addonComponentPanelGrid = new HtmlPanelGrid();
    addonComponentPanelGrid.setTitle(currentGrid.getDefinition());
    addonComponentPanelGrid.setColumns(8);
    for(int addonIndex = 0; addonIndex < currentGrid.getAddonList().size() ;addonIndex++){
        Addon currentAddon = currentGrid.getAddonList().get(addonIndex);

        HtmlOutputLabel labelComponent = new  HtmlOutputLabel();
        addonComponentPanelGrid.getChildren().add(labelComponent);

        HtmlCommandButton commandButton = new HtmlCommandButton();
        addonComponentPanelGrid.getChildren().add(commandButton);
    }   
    dynamicAddonGrid.getChildren().add(addonComponentPanelGrid);
}

为了澄清,我省略了不相关的业务逻辑。

父元素和第一级子元素都是 HtmlPanelGrids,但不知何故,我无法对它们进行分组。我的意思是我可以,但它什么也没显示。好像我忽略了什么。任何帮助,将不胜感激。

4

0 回答 0