AJAX-Renderattribut funktioniert nicht mit der Komponente "rendering =" false "[duplicate]
Diese Frage hat hier bereits eine Antwort:
Ajax Update / Render funktioniert nicht für eine Komponente, die das Attribut gerendert hat 1 AntwortIch habe eine Komponente, die ich anzeigen / verbergen möchte, nachdem der Benutzer a gedrückt hatcommandButton
.
Es ist so:
<h:commandButton id="showButton" value="#{bean.wasPressed ? 'Hide' : 'Show'}">
<f:ajax listener="#{bean.toggle()}" render="explanation showButton" />
</h:commandButton>
und
<h:panelGroup id="explanation" rendered="#{bean.wasPressed}">
<h:outputText value="something" />
</h:panelGroup>
Dasbean.toggle()
setzt einfach diewasPressed
Eigentum richtig oder falsch geeignet. ich benutze<h:form prependId="false">
.
Das Problem ist der Wert derrender
Attribut meines Knopfes. Es trägt ausdrücklich beide ein:explanation
undshowButton
.
Solange dieshowButton
ist immer vorhanden (es ändert nur die Bezeichnung), dieexplanation
ist nur vorhanden, wenn diewasPressed
Eigentum ist wahr. Ansonsten heißt es:
malformedXML: Während des Updates: Erklärung nicht gefunden
Wie kann ich dieses Problem lösen?
Ich möchte nicht zurückkehren, um das Element im Quellcode auszublenden, also möchte ich keinen jQuery-Schalter (-) oder irgendeine Möglichkeit zum Ausblenden des Elements mit verwendenstyle="display: none"
oder irgendetwas davon.
Ist es in JSF 2.1 überhaupt erreichbar?