Voici un exemple riche: dataTable avec un a4j: commandLink à l'intérieur. Quand on clique dessus, il envoie une requête AJAX à mon bean et renvoie le dataTable.Pourquoi une sous-table casse-t-elle a4j: reRender de commandLink?
<rich:dataTable id="dataTable" value="#{carManager.all}" var="item">
<rich:column>
<f:facet name="header">name</f:facet>
<h:outputText value="#{item.name}" />
</rich:column>
<rich:column>
<f:facet name="header">action</f:facet>
<a4j:commandLink reRender="dataTable" value="Delete" action="#{carForm.delete}">
<f:setPropertyActionListener value="#{item.id}" target="#{carForm.id}" />
<f:param name="from" value="list" />
</a4j:commandLink>
</rich:column>
</rich:dataTable>
Le obove de exmaple fonctionne très bien jusqu'à présent. Mais quand j'ajoute une riche: Soustable (regroupant les voitures par un garage par exemple) à la table, ne ... nouveau rendu
<rich:dataTable id="dataTable" value="#{garageManager.all}" var="garage">
<f:facet name="header">
<rich:columnGroup>
<rich:column>name</rich:column>
<rich:column>action</rich:column>
</rich:columnGroup>
</f:facet>
<rich:column colspan="2">
<h:outputText value="#{garage.name}" />
</rich:column>
<rich:subTable value="#{garage.cars}" var="car">
<rich:column><h:ouputText value="#{car.name}" /></rich:column>
<rich:column>
<a4j:commandLink reRender="dataTable" value="Delete" action="#{carForm.delete}">
<f:setPropertyActionListener value="#{item.id}" target="#{carForm.id}" />
<f:param name="from" value="list" />
</a4j:commandLink>
</rich:column>
</rich:column>
</rich:dataTable>
Maintenant les riches: dataTable est pas mais le nouveau rendu élément est supprimé depuis le L'élément n'apparaît pas après une actualisation manuelle de la page.
Pourquoi le sous-tableau interrompt-il le support pour reRender-ing?
Tanks Tom
peut être un bug. Vérifiez la console Javascript dans Firefox – Bozho
Vérifié cela. La réponse est une table dans les deux cas (w/et w/o subTable) mais avec subTable il semble renvoyer l'ancienne table. Peut-être une sorte de problème de mise en cache. En tout cas la mise en cache est désactivée dans Firefox. – Tom