5

我正在开发仪表板应用程序,我必须在其中检索一组记录并显示在动态表格框中。页框长度是固定的。现在可以初始化列和行。它应该看起来像这个示例:

在此处输入图像描述

目前我正在使用数据表来显示,但它将所有数据打印在一列中。如何将我的代码更改为上述模式?

<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>
4

1 回答 1

11

您可以使用标准 JSF 组件来实现这一点,<h:panelGrid>其中<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 的展示中看不到任何东西,但 PrimeFaces 有一个<p:dataGrid>正是为了这个目的,即使支持分页。

<p:dataGrid columns="5" value="#{bean.items}" var="item">
    <p:column>
        <h:outputText value="#{item.value}" />
    </p:column>
</p:dataGrid>
于 2012-07-01T11:37:23.343 回答