web-dev-qa-db-fra.com

Rendre plusieurs composants avec f: ajax

Les mauvais codes sont:

<h:form id="search_form">
<h:commandButton class="button" value="View" action="#{InfoBean.search}">
    <f:ajax execute="search_form" render="linear1"></f:ajax>
    <f:ajax execute="search_form" render="linear2"></f:ajax>
</h:commandButton>
<p:lineChart id="linear1" value="#{InfoBean.linearModel1}" legendPosition="e"/>
<p:lineChart id="linear2" value="#{InfoBean.linearModel2}" legendPosition="e"/>
</h:form>

Ce que je veux faire, c’est que lorsque je clique sur la commandButton, je veux actualiser ces deux graphiques. Mais maintenant, j'ai utilisé deux balises <ajax>, dont la seconde ne fonctionne pas.

Alors, comment puis-je utiliser ajax pour rendre deux graphiques?

24
Cacheing

Vous pouvez rendre plusieurs composants avec un seul f:ajax. Assurez-vous simplement que tous les composants individuels que vous souhaitez mettre à jour ont une id. Dans votre échantillon, ce serait quelque chose comme:

<f:ajax execute="search_form" render="linear1 linear2"/>

Où les identifiants doivent être séparés par des espaces tels que linear1 linear2 et non pas comme des virgules, comme linear1, linear2 (cela ne fonctionne que dans p:ajax).

Voir également:

49
partlov

Pour a4j jsf, utilisez ',': <a4j:support event="onchange" reRender="parent,child1,child2" />

0
Chinmoy