Ho un componente che voglio mostrare/nascondere dopo che l'utente ha colpito un commandButton
.L'attributo di rendering AJAX non funziona con il componente reso = "false"
E 'in questo modo:
<h:commandButton id="showButton" value="#{bean.wasPressed ? 'Hide' : 'Show'}">
<f:ajax listener="#{bean.toggle()}" render="explanation showButton" />
</h:commandButton>
e
<h:panelGroup id="explanation" rendered="#{bean.wasPressed}">
<h:outputText value="something" />
</h:panelGroup>
Il bean.toggle()
imposta semplicemente la proprietà wasPressed
true o false in modo appropriato. Sto usando <h:form prependId="false">
.
Il problema è il valore dell'attributo render
del mio pulsante. Incorpora esplicitamente entrambi: explanation
e showButton
.
Finché lo showButton
è sempre presente (cambia solo l'etichetta), lo explanation
è presente solo se la proprietà wasPressed
è vera. In caso contrario, si dice:
malformedXML: Durante l'aggiornamento: explanaition non trovato
Come posso risolvere questo problema?
Vorrei non tornare a nascondere l'elemento nel codice sorgente, quindi mi piacerebbe non utilizzare alcun javery toggle (-) o alcun modo di nascondere l'elemento usando style="display: none"
o una qualsiasi di queste cose.
È persino ottenibile in JSF 2.1?
Aggiungi un involucro a quella panelGroup con un id e fare riferimento ad esso .... non si può fare riferimento a un elememt http JSF non fusi: // StackOverflow. it/a/10707789/617373 – Daniel
Funziona come un incanto, grazie! Potresti per favore aggiungere una risposta a questa domanda così potrò accettarla? –
Siete i benvenuti. – Daniel