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. :
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>
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
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>
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é.

J'ai donc changé mon fusil d'épaule et tenté d'exploiter :
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>
Au premier affichage de la page, ça marche nickel.

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.