Bonjour à tous,

J'essaie de faire afficher un rich: DataTable, avec un nombre de colonnes et de lignes variables.

Voici le use-case:
Au début, la datatable est vide.
Puis, grâce à quelques manipulations via l'interface utilisateur, je remplis 2 listes, construites ainsi:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
List<String> tabHeader = new ArrayList<String>();
List<List<String>> tabDataList = new ArrayList<List<String>>();
Les listes sont correctement peuplées.

Ma dernière action met à jour la datatable "table" suivante :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
 
<rich:dataTable value="#{mainController.view.tabDataList}" var="tabTable" id="table">
     <a4j:repeat rowKeyVar="i" value="#{mainController.view.tabHeader}" var="c">   
          <rich:column>
                 <f:facet name="header">
                        <h:outputText value="#{tabHeader}" />
                 </f:facet>
                 <h:outputText value="#{tabTable[i]}" />
            </rich:column>
      </a4j:repeat>
</rich:dataTable>
Malheureusement, rien ne s'affiche...

J'ai essayé avec c:forEach ainsi :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
 
<rich:dataTable value="#{mainController.view.tabDataList}" var="dataTable" id="table">
    <c:forEach items="#{mainController.view.tabHeader}" var="c"  varStatus="i">
         <rich:column>
               <f:facet name="header">
                     <h:outputText value="#{c}" />
               </f:facet>
               <h:outputText value="#{dataTable[i.index]}" />
         </rich:column>
    </c:forEach>
</rich:dataTable>
Ca fonctionne, mais forEach empêche toute recharge par Ajax (pas la même phase de construction): en effet le nombre de colonnes/lignes ne sera pas modifié en moment du refresh...

Quelqu'un a-t-il une idée pour me faire afficher cette satanée datatable ?

Merci d'avance
Michael