2013-05-16 16 views
23

I codici errati sono:Rendering di più componenti con f: ajax

<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> 

Quello che voglio fare è quando clicco sul commandButton, voglio aggiornare questi due grafici. Ma ora ho usato due tag <ajax>, di cui il secondo non funziona.

Quindi, come posso utilizzare ajax per eseguire il rendering di due grafici?

risposta

46

È possibile eseguire il rendering di più componenti con il singolo f:ajax. Assicurati solo che tutti i singoli componenti che desideri aggiornare abbiano un id. Nel campione che sarebbe qualcosa di simile:

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

Dove gli ID devono essere separate da spazi bianchi proprio come linear1 linear2 e non commaseparated come linear1, linear2 (che funziona solo in p:ajax).

Consulta anche:

+0

Mi chiedo se c'è una soluzione per rendere dinamica multipla componenti che verranno creati durante il tempo di esecuzione – electricalbah

+0

@electri calbah f: ajax ricarica gli elementi dal server. se per "runtime" intendi creato tramite JS indipendentemente dal server, non è possibile aggiornarli in questo modo. –

0

Per a4j uso JSF '': <a4j:support event="onchange" reRender="parent,child1,child2" />

+0

La domanda riguarda 'f: ajax' .... – Kukeltje