2013-05-16 13 views
23

niewłaściwe kody:Render wiele komponentów z 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> 

Co chcę zrobić, to po kliknięciu na commandButton, chcę odświeżyć te dwa wykresy. Ale teraz użyłem dwóch tagów <ajax>, z których drugi nie działa.

Jak mogę używać ajaxa do renderowania dwóch wykresów?

Odpowiedz

46

Można renderować wiele komponentów za pomocą pojedynczego f:ajax. Upewnij się tylko, że wszystkie poszczególne składniki, które chcesz zaktualizować, mają numer id. W swojej próbie byłoby coś takiego:

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

Gdzie identyfikatory muszą być rozdzielone spacją tylko jak linear1 linear2 i nie commaseparated jak linear1, linear2 (który działa tylko w p:ajax).

Zobacz także:

+0

Zastanawiam się, czy istnieje rozwiązanie, aby uczynić wiele dynamicznych składniki, które zostaną utworzone podczas działania – electricalbah

+0

@electri calbah f: ajax ponownie ładuje elementy z serwera. jeśli przez "środowisko wykonawcze" masz na myśli utworzone przez JS niezależnie od serwera, nie można ich zaktualizować w ten sposób. –

0

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

+0

Pytanie dotyczy 'f: ajax' .... – Kukeltje

Powiązane problemy