IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JSF Java Discussion :

a4J et Rerender


Sujet :

JSF Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 48
    Par défaut a4J et Rerender
    Bonjour

    j'ai le code suivant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <h:selectOneMenu  id="profil"  value="#{ajoutUtilBean.role}" immediate="true" required="true"  style="width: 103px">
    	<f:selectItems id="profilValue" value="#{ajoutUtilBean.PListe}" />
    	<a4j:support event="onchange" action="#{ajoutUtilBean.MajRenderDroits}" reRender="DroitsPanel" ></a4j:support>
    </h:selectOneMenu>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <h:panelGrid id="DroitsPanel" border="0" columns="2" rendered="#{ajoutUtilBean.renderDroits}">		
    	<h:selectBooleanCheckbox  value="#{ajoutUtilBean.lire}"></h:selectBooleanCheckbox>
    </h:panelGrid>


    c'est en fait une liste déroulante pour attribuer un rôle lors de la création d'un nouvel utilisateur.
    Selon le choix au niveau de cette liste, je veux afficher un panelGrid en bas pour pouvoir sélectionner d'autres privilèges pour certains rôles. Pour ceci j'appelle avec a4J la méthode ajoutUtilBean.MajRenderDroits qui remets à jour un boolean pour l'attribut 'Rendred' de ce panelGrid.


    a4j marche bien, la mth ajoutUtilBean.MajRenderDroits et le boolean rendred aussi sauf qu'il n'est pris en compte pour le composant panaelGrid que lors de la validation du formulaire, ce qui n'est pas le but!!
    La valeur du boolean Rendred est bien MAJ à 'true' grâce à a4j, mais le composant "DroitsPanel" n'apparait qu'a la soumission et non avant!!

    alors comment faire pour le faire apparaitre directement avant la validation du formulaire SVP.

    Merci

  2. #2
    Rédacteur

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    4 184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 184
    Par défaut
    il faut l'entourer d'un outputPanel et faire le reRender sur le outputPanel, il n'est pas possible de mettre à jour un composant qui n'existait pas dans le dom lors de la requete.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <a4j:outputPanel id="DroitsPanel">
    <h:panelGrid  border="0" columns="2" rendered="#{ajoutUtilBean.renderDroits}">		
    	<h:selectBooleanCheckbox  value="#{ajoutUtilBean.lire}"></h:selectBooleanCheckbox>
    </h:panelGrid>
    </a4j:outputPanel>

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 48
    Par défaut
    d'accord sniper, j'essayerai ceci et te tiendrai au courant.
    Merci pour ta réponse

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 48
    Par défaut
    Cela ne fonctionne toujours pas!!
    Ceci dit, je n'ai rajouté que le <outputPanel> autour du paneGrid et j'ai bien gardé le <h:selectOneMenu> tel qu'il est.

    J'ai toujours le même résultat...le boolean RenderDroits se met bien a 'false', mais le 'rendred' de panelGrid ne se met a jour qu'après validation!!!

    Autres solutions peut être ??

  5. #5
    Rédacteur

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    4 184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 184
    Par défaut
    tu as entouré le tout d'un form?

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 48
    Par défaut
    Citation Envoyé par Sniper37 Voir le message
    tu as entouré le tout d'un form?
    oui tout est dans un form!
    En fait, la methode appelée par a4j 'ajoutUtilBean.MajRenderDroits' change la valeur du boolean selon la valeur choisie dans la liste déroulante.
    La méthode fonctionne bien, sauf que la valeur mise à jour de ce boolean n'est prise en compte que lors de la validation!! est ce normal que le composant en question (ici le <h:panelGrid> ne soit pas à jour avec la valeur de son bool rendred ??


    Sinon y aurai t il autre moyen d'afficher ces chexbox selon le rôle choisi depuis la liste déroulante.??

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. problème de reRender sur a4j:support
    Par sendoshi dans le forum JSF
    Réponses: 1
    Dernier message: 09/06/2009, 12h13
  2. Problem reRender a4j:support
    Par Seiphir0the dans le forum JSF
    Réponses: 16
    Dernier message: 03/06/2009, 17h55
  3. a4j reRender avec IE7
    Par badreddine540 dans le forum JSF
    Réponses: 2
    Dernier message: 28/05/2009, 14h55
  4. A4J avec MyFaces
    Par Mike_69 dans le forum JSF
    Réponses: 2
    Dernier message: 22/05/2007, 16h49
  5. je rerends à zéro
    Par pat1545 dans le forum Access
    Réponses: 4
    Dernier message: 11/08/2006, 19h53

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo