2012-07-01 30 views
5

Estoy trabajando en la aplicación de tablero donde tengo que recuperar un conjunto de registros y mostrarlos en cuadros de tablas dinámicas. La longitud del cuadro de página es fija. ahora se pueden inicializar columnas y filas. Debe quedar como este ejemplo:Crear columnas de tabla dinámicamente en JSF

enter image description here

Actualmente estoy usando la tabla de datos para mostrar pero imprime todos los datos en una columna. ¿Cómo cambiaría mi código al patrón anterior?

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

Respuesta

11

Usted puede lograr esto con componentes JSF estándar utilizando un <h:panelGrid> que <c:forEach> se ha utilizado para generar las células durante el tiempo de visualización de construcción. El <ui:repeat> no funcionará como se ejecuta durante el tiempo de visualización de vista.

<h:panelGrid columns="5"> 
    <c:forEach items="#{bean.items}" var="item"> 
     <h:panelGroup> 
      <h:outputText value="#{item.value}" /> 
     </h:panelGroup> 
    </c:forEach> 
</h:panelGrid> 

En cuanto a las bibliotecas de componentes, no ver nada en OpenFaces' showcase, pero PrimeFaces tiene un <p:dataGrid> precisamente para este propósito, incluso con el apoyo de paginación.

<p:dataGrid columns="5" value="#{bean.items}" var="item"> 
    <p:column> 
     <h:outputText value="#{item.value}" /> 
    </p:column> 
</p:dataGrid> 
Cuestiones relacionadas