Je donne les résultats suivants datable:richfaces datatable et sous-table
<rich:dataTable id="grid1" value="#{monitorForm.customerList}" var="custRow">
<rich:column width="5">
<h:selectBooleanCheckbox value="#{custRow.selected}">
<a:support event="onclick" action="#{monitorForm.selectOrderLines(custRow)}"
reRender="custTable_#{custRow.id}"/>
</h:selectBooleanCheckbox>
</rich:column>
<rich:subTable id="custTable_#{custRow.id}"
var="row" value="#{custRow.orderList}" rendered="#{custRow.show}">
<rich:column width="5">
<h:selectBooleanCheckbox value="#{row.checked}" />
</rich:column>
<rich:column>
<h:outputText value="#{row.name}" />
</rich:column>
</rich:subTable>
</rich:dataTable>
Lorsque je clique sur la case à cocher l'action #{monitorForm.selectOrderLines(custRow)}
définit les cases à cocher pour le client sélectionné et je veux que la sous-table pour ce client à nouveau rendu. Ce qui précède ne fonctionne pas. L'erreur est n'existe pas.
Tout fonctionne très bien quand j'utilise reRender="grid1"
mais cela peut être très lent quand il y a beaucoup de lignes.
Est-il possible d'avoir rich:subTable
avec un ID dynamique que je peux utiliser pour ré-indiquer uniquement ce sous-tableau?
Salut, il peut y avoir plusieurs sous-tables en fonction du nombre de clients, donc 1 identifiant pour tous ne fonctionnerait pas. Aussi j'ai lu que l'identification ne peut pas être réglée dynamiquement. Il y a une bonne réponse sur http://stackoverflow.com/questions/316790/dynamic-ids-in-jsf-seam – Guus