在dataTable中显示列表的不同项

时间:2013-10-29 13:59:24

标签: jsf datatable

我想在我的dataTable

中显示列表的不同项目

我尝试了ui:repeat,但似乎无效

我有一个对象Demande(Classe demande)它有一个Choix列表,我想为所有demandes显示每个选择的选择和periode(Classe Periode)(classe Choix)

                <p:dataTable id="estivage" var="it" emptyMessage="Aucune demande !"
                    value="#{demandeController.allDemandes}" paginator="false" style="width: 800px"
                    rows="10"
                    paginatorTemplate="{CurrentPageReport}  {FirstPageLink} {PreviousPageLink} {PageLinks}  {NextPageLink} {LastPageLink} {RowsPerPageDropdown}"
                    rowsPerPageTemplate="5,10,15">

                    <f:facet name="header">  
        Liste des Demandes pour la periode d'éstivage
                </f:facet>

                    <p:column style="text-align:center" sortBy="#{it.utilisateur.nom}">
                        <f:facet name="header">

                            <h:outputText value="Adherent" />
                        </f:facet>

                        <h:outputText value="#{it.utilisateur.nom}" />
                        <h:outputText value=" " />
                        <h:outputText value="#{it.utilisateur.prenom}" />
                    </p:column>

                    <p:column style="text-align:center" sortBy="#{it.dateDemande}">
                        <f:facet name="header">
                            <h:outputText value="Date de la demande" />
                        </f:facet>

                        <h:outputText value="#{it.dateDemande}">
                            <f:convertDateTime pattern="dd/MM/yyyy 'à' HH:mm:ss" />
                        </h:outputText>
                    </p:column>
                     <ui:repeat var="item" value="#{it.listChoix}">
                    <p:column style="text-align:center">
                        <f:facet name="header">
                            <h:outputText value="chalet " />
                        </f:facet>

                        <h:outputText value="#{item.chaletChoisi}" />
                    </p:column>
                    <p:column style="text-align:center">
                        <f:facet name="header">
                            <h:outputText value="periode " />
                        </f:facet>

                        <h:outputText value="#{item.periode.libelle}" />
                    </p:column>
                    </ui:repeat>
                    <p:column style="text-align:center">
                        <f:facet name="header">
                            <h:outputText value="Mode paiement"    />
                        </f:facet>

                        <h:outputText value="#{it.modePaiement}">
                        </h:outputText>
                    </p:column>
                </p:dataTable>

任何帮助,请

1 个答案:

答案 0 :(得分:0)

<p:column>中有ui:repeat。它不能很好地工作。你可以试试Primefaces的SubTable。 请参阅Primefaces Showcase中的示例: http://www.primefaces.org/showcase/ui/datatableSubTable.jsf

每个Demandesyou的Choix列表都可以在SubTable中显示。

另一种可能性是使用嵌套的DataTables。使用p:column“estivage”表并在该列内部定义另一个显示Choix列表的数据表。

<p:dataTable id="estivage" var="it">

  <p:column header="choice and periode">
     <p:dataTable var="item" value="#{it.listChoix}">
        <p:column style="text-align:center">
                    <f:facet name="header">

                        <h:outputText value="chalet " />
                    </f:facet>

                    <h:outputText value="#{item.chaletChoisi}" />
                </p:column>
                <p:column style="text-align:center">
                    <f:facet name="header">

                        <h:outputText value="periode " />
                    </f:facet>

                    <h:outputText value="#{item.periode.libelle}" />
                </p:column>
     </p:dataTable>
  </p:column>
</p:dataTable>