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:
Les listes sont correctement peuplées.
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>>();
Ma dernière action met à jour la datatable "table" suivante :
Malheureusement, rien ne s'affiche...
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>
J'ai essayé avec c:forEach ainsi :
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...
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>
Quelqu'un a-t-il une idée pour me faire afficher cette satanée datatable ?
Merci d'avance
Michael
Partager