JSF + Primefaces: Problème avec “rendu” des composants avec ajax
MODIFIER
Ne peut pas sembler obtenir rendered
pour fonctionner correctement avec update
attributs. Voici mes codes
<ui:define name="left">
<h:form>
<p:commandLink value="Hey"
actionListener="#{bean.setRenderComment}"
update="comment"/>
</h:form>
</ui:define>
<ui:define name="right">
<h:panelGroup id="comment" rendered="#{bean.renderComment}">
hello
</h:panelGroup>
</ui:define>
renderComment
est un booléen attributs à l'intérieur de bean
. setRenderComment
fondamentalement changer l'état de renderComment
comme ce
this.renderComment = !this.renderComment;
Droit, chaque fois que je clique sur le lien Hey
, j'ai besoin de rafraîchir soit rendu hello
sur on ou off. Comment puis-je résoudre ce problème, de sorte que je n'ai pas besoin de rafraîchir
OriginalL'auteur Thang Pham | 2010-09-20
Vous devez vous connecter pour publier un commentaire.
Je ne suis pas à l'aide de Primefaces mais Richfaces sur mes projets. Donc, je ne suis pas vraiment au courant sur la façon dont le processus d'actualisation est effectuée par Primefaces. Cependant, j'ai une idée qui peut être testé facilement.
Votre problème peut être dû au fait que le composant de re-rendre (c'est à dire mise à jour) n'est pas trouvé sur la page HTML. Si votre
rendered
attribut est égal àfalse
, puis le<SPAN>
aveccomment
id est pas intégré dans la page HTML générée. Ainsi, quand la requête Ajax est reçu sur le côté client, l'Ajax moteur n'est pas en mesure d'actualiser cette<SPAN>
comme il n'est pas trouvé.Ce que vous pouvez faire est de toujours rendre votre
panelGroup
et déplacez votrerendered
attribut à un imbriquée<h:outputText>
qui contient le Bonjour message.Voici ce que je suggère:
De cette façon, le panelGroup sera toujours actualisé après l'appel Ajax, et il contiendra l' Bonjour message ou non, au sujet de la valeur de la
renderComment
attribut de votre bean.panelGroup
est parce que, j'ai beaucoup de composant que je veuxrender
ou désactivé en utilisant seulement unrendered
attributs. Si je dois le faire, je suppose, je pourrais tout aussi bien prendre lapanelGroup
. Merci beaucoup de l'homme 😀OriginalL'auteur Romain Linsolas
Depuis le composant avec l'ID
comment
n'est pas un de la forme (unUINamingContainer
composant) les enfants, vous avez besoin de préfixe de la pièce d'identité avec:
pour instruire JSF pour numériser à partir du "niveau supérieur".Cela devrait le faire:
update
seulement de travailler sur le même niveau. Que faire si j'ai de multiples niveaux. J'essaie::comment
, mais il ne fonctionne pas. U peut prendre un coup d'oeil à mon post mis à jour, s'il vous plaît?romaintaz a cloué vers le bas.
OriginalL'auteur BalusC