Bonjour,
J'essaie tant bien que mal, enfin surtout avec douleur, de migrer de JSF 1.2/RichFaces 3.3.x vers JSF 2.1/RichFaces 4.2.2 Final.
Sur une page, je construis une table pour laquelle les colonnes affichées dépendent du mode d'affichage choisit pour l'utilisateur dans une liste déroulante. :
Certaines colonnes sont fixes (toujours là), d'autres non. Ma table est donc construite de façon dynamique : j'instancie les UIColomn dans le code Java. Avant, je faisais
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 <h:selectOneListBox ...> <f:selectItems ... <a4j:ajax event="change" render="myDataTable" ... </h:selectOneListBox>
Même en essayant de changer c:forEach par ui:repeat ou a4j:repeat, ça ne marche plus: les colonne construites dans le code Java ne sont pas ajoutées. <rich:columns> n'a pa été porté.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 <rich:dataTable id="myDataTable" binding="#{myBean.uiDataTable}"...> <rich:column> info fixe </rich:column> <c:forEach item="#{myBean.columns}" var="col"> <rich:column binding="#{col}" </c:forEach> </rich:dataTable>
J'ai donc changé mon fusil d'épaule et tenté d'exploiter :
Au premier affichage de la page, ça marche nickel.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 <rich:dataTable ...> <rich:column> info fixe </rich:column> <f:event type="preRenderComponent" listener="#{myBean.addDynamicColumns}"/> </rich:dataTable>
Mais lorsque je change de choix de présentation dans ma liste déroulante, mes colonnes dynamique ne sont plus ajoutées. Et pourtant je passe dans addDynamicColumns.
Un idée ? Merci de votre aide.
Partager