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.

Était-ce utile?

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 une id 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 - à savoir reRender="#{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:

rerender peut pointer vers l'un des composants en dehors de la forme aussi bien. Par exemple, cela fonctionne:

<h:form>
  <a4j:commandButton reRender="panel"/>
</h:form>

<h:panelGrid id="panel">
...
</h:panelGrid>
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top