我正在使用仪表板应用程序,我必须检索一组记录并在动态表格框中显示。页面框架长度是固定的。现在可以初始化列和行。它应该看起来像这样:
目前我正在使用数据表进行显示,但它会将所有数据打印在一列中。如何将代码更改为上述模式?
<o:dataTable id="tabBlSearch" var="item"
onkeyup="handleLeftRightArrowOnDataTable('frmDashBoard:tabBlSearch')"
value="#{bLDashBoardAction.listBondLoc}">
<o:column style="width: 20px;">
<h:outputText value="#{item.awb}" />
</o:column>
</o:dataTable>
答案 0 :(得分:11)
您可以使用<h:panelGrid>
在标准JSF组件中实现此目的,其中<c:forEach>
用于在视图构建期间生成单元格。 <ui:repeat>
将无法在视图渲染时间内运行。
<h:panelGrid columns="5">
<c:forEach items="#{bean.items}" var="item">
<h:panelGroup>
<h:outputText value="#{item.value}" />
</h:panelGroup>
</c:forEach>
</h:panelGrid>
对于组件库,我在OpenFaces' showcase中没有看到任何内容,但PrimeFaces正是为了这个目的而有<p:dataGrid>
,即使有分页支持。
<p:dataGrid columns="5" value="#{bean.items}" var="item">
<p:column>
<h:outputText value="#{item.value}" />
</p:column>
</p:dataGrid>