Frage

Mein Problem ist, dass Richfaces reRender funktioniert nicht ‚unter‘ dem aktuellen Element in der Elementstruktur; nur obere Elemente erhalten erneut gerendert.

Gibt es eine Möglichkeit, den Zugang untere Elemente mit AJAX?

Jede mögliche Hilfe würde geschätzt! Daniel

Bearbeiten Ich bearbeitete diese Frage zu einer allgemeineren ein. Siehe Revisionen, wenn in der ursprünglichen Frage interessiert.

War es hilfreich?

Lösung 2

Hier ist ein Beispiel, wo changePanel111() den Inhalt eines unteren Elements ändert:

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

Beachten Sie, wie die untere Element Bedürfnisse als form:PANEL111 identifiziert werden.

Hope, das hilft!

Andere Tipps

  • reRender arbeitet mit einem der id des Zielobjekts bietet Ihnen rerender wollen (innerhalb des gleichen Namenscontainer - form am häufigsten)
  • die id sollte eine eindeutige Zeichenfolge sein, nach html spec
  • reRender ermöglicht dynamischen Wert - das heißt reRender="#{myBean.currentItemsToRerender}

Auf der Grundlage, dass ich denke, sollten Sie in der Lage zu erreichen, was Sie wollen (auch wenn es nicht ganz klar ist)

Update:

rerender kann auch außerhalb der Form auf jede Komponente verweisen. Zum Beispiel das funktioniert:

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

<h:panelGrid id="panel">
...
</h:panelGrid>
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top