Absolu en utilisant RichFaces nouveau rendu
Question
Mon problème est que RichFaces reRender
ne fonctionne pas « sous » l'élément courant dans l'arborescence des éléments; seuls éléments supérieurs se nouveau rendu.
Est-il possible d'accéder à des éléments inférieurs avec AJAX?
Toute aide serait appréciée! Daniel
EDIT J'edited cette question à une plus générale. Voir révisions si vous êtes intéressé à la question initiale.
La solution 2
Voici un exemple où changePanel111()
modifie le contenu d'un élément inférieur:
<h:form id="form" prependId="true">
<rich:panel id="PANEL1">
<h:outputText id="PANEL1TEXT" value="#{ajaxTestBean.panel1}"/>
<rich:panel id="PANEL11">
<h:outputText id="PANEL11TEXT" value="#{ajaxTestBean.panel11}"/>
<rich:panel id="PANEL111">
<h:outputText id="PANEL111TEXT" value="#{ajaxTestBean.panel111}"/>
</rich:panel>
</rich:panel>
<rich:panel id="PANEL12">
<h:outputText id="PANEL12TEXT" value="#{ajaxTestBean.panel12}"/>
<br/>
<a4j:commandLink value="CHANGE PANEL12" action="#{ajaxTestBean.changePanel12}">
<a4j:support reRender="PANEL12" event="onclick"/>
</a4j:commandLink>
<br/>
<a4j:commandLink value="CHANGE PANEL111" action="#{ajaxTestBean.changePanel111}">
<a4j:support reRender="form:PANEL111" event="onclick"/>
</a4j:commandLink>
</rich:panel>
</rich:panel>
</h:form>
Remarquez comment l'élément inférieur doit être identifié comme form:PANEL111
.
Hope this helps!
Autres conseils
-
reRender
travaille avec fournissant uneid
la de l'objet cible que vous souhaitez rerender (dans le même conteneur de dénomination -form
le plus souvent) - le
id
doit être une chaîne unique, selon spécification HTML -
reRender
valeur dynamique permet - à savoirreRender="#{myBean.currentItemsToRerender}
Sur cette base, je pense que vous devriez être en mesure d'obtenir ce que vous voulez (bien que ce n'est pas tout à fait clair)
Mise à jour:
Pour mes MyFaces + RichFaces App, tag <rich:panel>
ne fonctionnait pas comme décrit dans la réponse choisie. Quand je l'ai changé <a4j:outputPanel ajaxRendered="true" />
, il a commencé à travailler comme donnée ici «
configuration: MyFaces 2.1.10 (Facelets utilisés pour la texturation) et RichFaces 4.2.3.
Espérons que cela vous aidera.