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 :

le rafraichissement d'un rich <rich:tab>


Sujet :

JSF Java

  1. #1
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2008
    Messages
    197
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2008
    Messages : 197
    Par défaut le rafraichissement d'un rich <rich:tab>
    Bonjour à tous;
    J'ai un <rich:tab > dans un <rich:tabPanel>, dans le rich:tab j'utilise un <ui:include> pour afficher un formulaire, j'ai un bouton Annuler qui efface les valeurs saisies dans ce formulaire...

    Le problème est que après que je click sur annuler les valeurs du formulaire ne sont pas effacées, et si je click sur un autre tab puis je reviens à mon tab ou il y a le formulaire les champs sont vides.

    Est ce que il y a une solution pour que les champs de mon formulaire s'effacent juste après le click sur le bouton annuler ?

    Et merci d'avance pour votre aide.

  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
    si tu utilsie un a4j:commandButton, ajoute dans le reRender les id des inputs ou d'un composant parent.

  3. #3
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2008
    Messages
    197
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2008
    Messages : 197
    Par défaut
    Je vous remercie pour votre réponse,

    J'utilise un <h:commandLink>, je vais essayé avec un <a4j:commandLink> et je met les id des imput's comme tu m'a dit,

    Remarque : j'ai utilisé <a4j:commandLink> avant et j'ai mit l'id de <rich:tab> mis ça ne donne pas de solution.

    je te tiens au courant...

  4. #4
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2008
    Messages
    197
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2008
    Messages : 197
    Par défaut
    Le même problème, les champs ne sont pas initialisés à vide avec cette idée aussi.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2003
    Messages
    129
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2003
    Messages : 129
    Par défaut
    Ajoute un <a4j:outputPanel> autour des zones que tu veux rafraichir, et utilise l'id de l'outputPanel dans ton reRender.

  6. #6
    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
    Citation Envoyé par sal.gass Voir le message
    Je vous remercie pour votre réponse,

    J'utilise un <h:commandLink>, je vais essayé avec un <a4j:commandLink> et je met les id des imput's comme tu m'a dit,

    Remarque : j'ai utilisé <a4j:commandLink> avant et j'ai mit l'id de <rich:tab> mis ça ne donne pas de solution.

    je te tiens au courant...
    ça marche avec un h:commandButton?
    montre nous ton code..ça peut aider..

  7. #7
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2008
    Messages
    197
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2008
    Messages : 197
    Par défaut
    Citation Envoyé par Malone Voir le message
    Ajoute un <a4j:outputPanel> autour des zones que tu veux rafraichir, et utilise l'id de l'outputPanel dans ton reRender.
    Malheureusement, le même problème, j'ai utilisé <a4j:outputPanel id="essayeId"> autour de mes mes champs, aussi je l'ai utilisé autour de composant <ui:include> dans le tab, les champs des formulaire sont toujours remplis après Annulation.

  8. #8
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2008
    Messages
    197
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2008
    Messages : 197
    Par défaut
    Citation Envoyé par Sniper37 Voir le message
    ça marche avec un h:commandButton?
    montre nous ton code..ça peut aider..
    ok, voiçi mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <rich:tabPanel label="label1" switchType="ajax" immediate="true" 
    binding="#{ficheFournisseurBean.tabPanel}" id="general" with="100%">
    
    <rich:tab label="#{i18n.ficheFournisseur_infosGenerales}" ontableave="showWait()" oncomplete="hideWait()"
    action="#{infosGeneralesBean.init}" id="infosGenerales">
    				
    <ui:include src="/faces/fournisseur/infosGenerales.xhtml" />
    				
    </rich:tab>
    Le bouton d'annulation :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <h:commandLink id="hLinkAnnuler" immediate="true"  onclick="showWait()"  oncomplete="hideWait()"
    			action="#{ficheFournisseurBean.earseGenerale}"
    			disabled="#{ficheFournisseurBean.edit=='false'}" />
    La méthode annulerGenerale, fait appel à chaque méthode d'annulation de mes tab, j'ai un formulaire aussi dans la page principale au dessus du <tich:tabPanel> les champs sont bien initialisés à vide. mais le formulaire dans la page infosGenerales.xhtml n'est pas initialisé.

    c'est sur que c'est un pb de rafraîchissement... j'ai essayé avant avec a4j:commandLink> mais pas de résultat.

    Merci pour votre aide.

  9. #9
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2008
    Messages
    197
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2008
    Messages : 197
    Par défaut
    Citation Envoyé par Sniper37 Voir le message
    ça marche avec un h:commandButton?
    Même résultat avec <h:commandButton> aussi.

  10. #10
    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
    et avec immediate="false".

  11. #11
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2008
    Messages
    197
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2008
    Messages : 197
    Par défaut
    Citation Envoyé par Sniper37 Voir le message
    et avec immediate="false".
    Exactement Snipper, avec immediate="false" ça marche, mais à mon avis immadiate=false oblige de faire les validation sur tout les champs, et le bouton annuler ne doit pas faire la validation, l'utilisateur peut saisir se qu'il veux...puis il peut faire l'annulation de ce qu'il a saisie sans validation.

    Comment j'empêche la validation donc, si immadiate="false" ?

  12. #12
    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
    essaye de faire:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <a4j:region>
    <a4j:commandLink action="xxx" immediate="true" reRender="xxx/>
    </a4j:region>

  13. #13
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2008
    Messages
    197
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2008
    Messages : 197
    Par défaut
    Citation Envoyé par Sniper37 Voir le message
    essaye de faire:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <a4j:region>
    <a4j:commandLink action="xxx" immediate="true" reRender="xxx/>
    </a4j:region>
    Parfait Snipper, ça marche...j'ai enlevé même le "reRender", et ça marche bien aussi;
    Mais j'ai pas compris exactement le rôle de <a4j:region>, et quel est le problème avant l'utilisation de cet tag.

    Merci une autre fois pour votre aide.

  14. #14
    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
    lorsque immediate est utilisé pour un composant de contrôle (commandButton uo commandLink), la phase Update Model value n'est pas appelée. Lors de la phase renderResponse, la valeur de l'input correspond à la valeur envoyée dans le form, si la valeur de l'input n'a pas été envoyée alors dans la phase de renderResponse, la valeur donnée au composant correspond à celle du binding.

    Dans l'exemple, la valeurs des inputs ne sont pas envoyées, car, elles sont en dehors de a4j:region.

    une autre solution consiste à utiliser le binding, et dans l'action modifier la valeur du binding directement.

  15. #15
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2008
    Messages
    197
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2008
    Messages : 197
    Par défaut
    Je vous remercie pour votre explication, je vais lire encore sur le tag <a4j:region>
    Le pb est résolue.

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 25/06/2012, 12h01
  2. Réponses: 0
    Dernier message: 05/10/2009, 12h39
  3. Réponses: 8
    Dernier message: 27/02/2009, 16h03
  4. <rich:dataTable>,<rich:combox> et ajax
    Par info_plus dans le forum JSF
    Réponses: 2
    Dernier message: 23/04/2008, 13h31
  5. [Rich-faces]rich:dropDownMenu sous ie6
    Par Rom1984 dans le forum JSF
    Réponses: 6
    Dernier message: 17/01/2008, 14h19

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