JSF ReRender de soutien avec selectBooleanCheckbox
J'ai un JSF page sur laquelle je veux avoir une case à cocher qui, lorsqu'il est cliqué, va ajouter/supprimer certains autres champs de formulaire à partir de la page. Voici le (simplifié) code que j'ai actuellement pour la case à cocher:
<h:selectBooleanCheckbox title="showComponentToReRender" value="#{backingBean.showComponentToReRender}">
<a4j:support event="onsubmit" reRender="componentToReRender" />
</h:selectBooleanCheckbox>
Voici le code pour le composant je veux cacher:
<h:selectOneMenu id="componentToReRender" value="#{backingBean.value}" rendered="#{valuesList.rowCount>1 && backingBean.showComponentToReRender}">
<s:selectItems value="#{valuesList}" var="value"/>
</h:selectOneMenu>
Actuellement, en cliquant sur la case à cocher ne fait rien; que "selectOneMenu" ne va pas disparaître. Ce que je fais mal?
OriginalL'auteur iandisme | 2010-01-08
Vous devez vous connecter pour publier un commentaire.
Vous avez besoin d'envelopper le
componentToReRender
soit:<h:panelGroup id="componentToReRenderWrapper">
ou
<a4j:outputPanel id="componentToReRenderWrapper">
Oui, effectivement, vous devrez:
et modifier le
reRender="componentToReRenderWrapper"
dans le cas où vous utilisezpanelGroup
, ou une suppression de cet attribut, dans le cas où vous utilisezoutputPanel
.Trouvé l'explication exacte dans le RichFaces docs:
Intéressant... je vais essayer ce lundi matin.
Envelopper les composants à être réaffichées dans un h:panelGroup fonctionné comme prévu. Le seul problème que je vais avoir maintenant, c'est que les boîtes de prendre quelques secondes pour apparaître/disparaître, et je ne suis pas sûr de savoir comment permettre à l'utilisateur de connaître leur changement est affectée. Merci!!
+1 Excellente réponse, merci bozho!
+1 utile pour moi.
OriginalL'auteur Bozho
N'oubliez pas de mettre ajaxRendered="true" sur le a4j:outputPanel
OriginalL'auteur janner