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 :

<p:selectBooleanButton non rafraîchi


Sujet :

JSF Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé

    Inscrit en
    Juin 2005
    Messages
    1 155
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 1 155
    Par défaut <p:selectBooleanButton non rafraîchi
    Hello les gens,
    J'ai un souci avec un J'aimerais le combiner avec un seulement voila ce composant n'implémente pas l’événement javascript "onclick" et il faut s'y prendre autrement pour simuler un comportement similaire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    <h:body>
            <h:form id="form">
     
                <p:selectBooleanButton value="#{testBeanTwo.selectedOption}" onLabel="Yes" offLabel="No" 
                    onIcon="ui-icon-check" offIcon="ui-icon-close">
                    <p:ajax listener="#{testBeanTwo.showDialog}" />
                </p:selectBooleanButton>
     
            </h:form>
            <p:dialog id="test" widgetVar="testW" dynamic="true" modal="true" draggable="false">
                <p:panelGrid columns="2">
     
                    <f:facet name="header">  
                    Are you sure ?  
                    </f:facet>
                    <p:commandButton value="Yes" actionListener="#{BeanClass.methodeYes}" />
                    <p:commandButton value="No" actionListener="#{BeanClass.methodeNo}" />
                </p:panelGrid>
     
     
            </p:dialog>
     
     
        </h:body>
    avec mon managed bean à:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    private boolean selectedOption;
     
        public BeanClass() {
     
        }
     
        public void showDialog() {
            RequestContext context = RequestContext.getCurrentInstance();
            context.execute("testW.show()");
        }
     
        public boolean isSelectedOption() {
            return selectedOption;
        }
     
        public void setSelectedOption(boolean selectedOption) {
            this.selectedOption = selectedOption;
        }
     
    public String methodeYes(ActionEvent actionEvent) {
    		setSelectedOption(true);
    		System.out.println("methodeYes");
     
    		return null;
    	}
     
    public String methodeNo(ActionEvent actionEvent) {
    		setSelectedOption(false);
    		System.out.println("methodeNo");
     
    		return null;
    	}
    Le soucis c'est que:
    1- Idéalement la valeur qu'affiche le bouton ne devrait changer qu'après avoir choisi sur le "Yes" ou "No" je ne vois pas comment réaliser cela.
    2- Et c'est le plus embêtant. A mon sens, puisque mappé sur le booléen "selectedOption", le bouton devrait voir sa valeur affichée changée suivant ce que je fais sur les deux méthodes "methodeYes" et "methodeNo" or il n'en est rien. En somme comment changer programmatiquement la valeur qu'affiche le <p:selectBooleanButton ça ne devrait pas être automatique?

    Merci pour toutes vos contributions.

  2. #2
    Membre éprouvé

    Inscrit en
    Juin 2005
    Messages
    1 155
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 1 155
    Par défaut
    Bon heu... pour ceux que ça intéresserait j'ai résolu mon problème, mais c'est un peu crade s'il y a de meilleures façons de faire je suis toujours preneur.
    Voila en fait pour le premier point je fais ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    public void showDialog() {
            RequestContext context = RequestContext.getCurrentInstance();
    
    // Pour que le bouton garde la même valeur même quand on clique dessus
    		setSelectedOption(!selectedOption);
    
            context.execute("testW.show()");
        }
    Pour le deuxième problème j'enlève les actionListener de mes deux <p:commandButton et injecte dedans un <p:ajax

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <p:commandButton value="Yes">
     <p:ajax update="sbbId"	listener="#{spinnerController.methodeYes}" />
    </p:commandButton>
    "sbbId" étant l'id de mon <p:selectBooleanButton id="sbbId"
    Pour que ça marche finalement il faut enlever le paramètre ActionEvent actionEvent passé aux deux méthodes:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    public String methodeYes() {
    		setSelectedOption(true);
    		System.out.println("methodeYes");
     
    		return null;
    	}
     
    public String methodeNo() {
    		setSelectedOption(false);
    		System.out.println("methodeNo");
     
    		return null;
    	}
    Voili voilou qu'en pensez-vous il doit y avoir mieux non?

Discussions similaires

  1. [Admin] Gestionnaires d'instance - rapports non rafraîchis
    Par SebastienM dans le forum Administration-Migration
    Réponses: 1
    Dernier message: 25/03/2011, 11h59
  2. Optimiseur et statistiques non rafraîchies
    Par pacmann dans le forum Administration
    Réponses: 4
    Dernier message: 06/11/2008, 17h47
  3. listbox champs non rafraîchis
    Par jstas dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 28/09/2008, 09h23
  4. Variable de session non rafraîchie
    Par Akela dans le forum Langage
    Réponses: 6
    Dernier message: 17/10/2007, 15h44
  5. Réponses: 6
    Dernier message: 21/06/2002, 14h48

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