我有一个动态创建的 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,但不知何故,我无法对它们进行分组。我的意思是我可以,但它什么也没显示。好像我忽略了什么。任何帮助,将不胜感激。