1

I want to fill a rich:extendedDataTable with a static columns and dynamic columns in RichFaces 4.2

I tried following code,but it's not working for me :

            <rich:extendedDataTable id="listDipRec"
                iterationStatusVar="itDipRec" rows="200"
                value="#{declarationReglementaireModel.detailCurrentDecReg.decReg.listLigneDipRecsDTO}"
                var="ligneDipRec" frozenColumns="1"
                style="height:300px; width:800px;" selectionMode="none">

                <rich:column width="35px">
                    <h:panelGrid columns="1" cellpadding="2">
                        <a4j:commandLink render="editGridDipRec" execute="@this"
                            oncomplete="#{rich:component('modifDipRec')}.show()">
                            <span class="icone icone-edit icone-align-center" />
                            <a4j:param value="#{itDipRec.index}"
                                assignTo="#{declarationReglementaireModel.currentLigneDipRecIndex}" />
                            <f:setPropertyActionListener
                                target="#{declarationReglementaireModel.currentLigneDipRec}"
                                value="#{ligneDipRec}" />
                        </a4j:commandLink>

                    </h:panelGrid>
                </rich:column>
                <rich:column>
                    <f:facet name="header">
                        <h:outputText value="Date ligne fichier Dip" />
                    </f:facet>
                    <h:outputText value="#{ligneDipRec.dtLigneDipRec}">
                        <f:convertDateTime pattern="dd/MM/yyyy" timeZone="Europe/Paris" />
                    </h:outputText>
                </rich:column>
                <rich:column>
                    <f:facet name="header">
                        <h:outputText value="Référence titre" />
                    </f:facet>
                    <h:outputText value="#{ligneDipRec.rfTitre}">
                    </h:outputText>
                </rich:column>
                <rich:column>
                    <f:facet name="header">
                        <h:outputText value="Origine titre" />
                    </f:facet>
                    <h:outputText value="#{ligneDipRec.lbOrigineLigne}">
                    </h:outputText>
                </rich:column>

                <c:forEach items="#{ligneDipRec.listDonneeDipRecDTO}" var="column"
                    varStatus="status">
                    <rich:column>
                        <f:facet name="header">
                            <h:outputText value="Valeur rubrique" />
                        </f:facet>
                        <h:outputText value="#{declarationReglementaireModel.getColumnData(ligneDipRec,column).lbValeurRubrique}" />
                    </rich:column>
                </c:forEach>

            </rich:extendedDataTable>
Netmaster
  • 287
  • 1
  • 10
  • 27

1 Answers1

0

<c:forEach> doesn't have access to the table's variables (i.e. ligneDipRec), and unfortunately you can't do anything about it.

The good news is that whatever you put inside the forEach will have access to those variables. The only thing you need to do is to save the size of the list somewhere in the bean and then loop over it, rather than over the variable:

<c:forEach var="columnNumber" begin="0" 
  end="{declarationReglementaireModel.detailCurrentDecReg.decReg.listSize - 1}"> 
Makhiel
  • 3,874
  • 1
  • 15
  • 21