Ich habe eine Komponente, die ich zeigen/ausblenden möchte, nachdem Benutzer eine commandButton
trifft.AJAX Renderattribut funktioniert nicht mit gerenderten = "false" Komponente
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>
Die bean.toggle()
einfach die entsprechend wasPressed
Eigenschaft auf true oder false setzt. Ich benutze <h:form prependId="false">
.
Das Problem ist der Wert des Attributs render
meiner Schaltfläche. Es bezieht sich explizit auf beide: explanation
und showButton
.
Solange die showButton
immer vorhanden ist (sie ändert nur ihre Bezeichnung), ist explanation
nur vorhanden, wenn die wasPressed
Eigenschaft wahr ist. Ansonsten heißt es:
malformedXML: Während des Update: explanaition nicht
gefunden
Wie kann ich dieses Problem lösen?
Ich möchte nicht das Element im Quellcode verstecken, also würde ich gerne keine jQuery toggle (-) oder irgendeine Art des Versteckens des Elements mit style="display: none"
oder irgendwelche dieser Sachen verwenden.
Ist es sogar in JSF 2.1 erreichbar?
einen Wrapper zu diesem panelGroup mit id und darauf verweisen .... Sie JSF Elememt http einem nicht gerendert nicht beziehen können: // Stackoverflow. com/a/10707789/617373 – Daniel
Funktioniert wie ein Charme, danke! Könnten Sie bitte eine Antwort auf diese Frage hinzufügen, damit ich sie akzeptieren kann? –
Gern geschehen. – Daniel