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 :

griser un inputbox suivant la valeur sélectionnée dans un selectOneMenu


Sujet :

JSF Java

  1. #1
    Membre averti
    Inscrit en
    Mars 2009
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 13
    Par défaut griser un inputbox suivant la valeur sélectionnée dans un selectOneMenu
    Hi Everyone!!

    Comme c'est dit dans le titre, j'aimerais pouvoir griser/dégriser un inputBox suivant la valeur du selectOneMenu que je choisis. j'ai mis un <a4j:support> dans mon selectOneMenu comme suivant

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    <t:selectOneMenu id="lstReleaseType"
    							converter="converter.pp2.ReleaseType"
    							value="#{ReleaseNoteManagement.contextRN.releaseType}">
    							<c:forEach var="item"
    								items="#{ReleaseNoteManagement.lstReleaseType}">
    								<f:selectItem itemValue="#{item}"
    									itemLabel="#{item.description}" />
    							</c:forEach>
    							<a4j:support event="onchange" reRender="keyword"
    								limitToList="true" />
    						</t:selectOneMenu>
    keyword étant mon inputBox...

    Le problème est que je ne vois pas comment je pourrais signifier qu'à telle valeur de ma liste il se griserait ou pas.

    Et je n'ai pas envie d'utiliser un rich:comboBox qui prend lui un objet contextuel comme valeur (ca serait pratique mais on me l'a interdit )

    Ne laissez pas une cheerleader dans le pétrin, répondez lui et vous sauverez le monde =) Merci d'avance !

  2. #2
    Rédacteur
    Avatar de romaintaz
    Homme Profil pro
    Java craftsman
    Inscrit en
    Juillet 2005
    Messages
    3 790
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Java craftsman
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2005
    Messages : 3 790
    Par défaut
    Déjà, pourquoi utilises-tu un <c:forEach .../> à l'intérieur de ton selectOneMenu ?
    Autant utiliser un <f:selectItems /> à la place...

    Pour ton problème, il te faut faire quelque chose comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <h:inputText id="keyword" disabled="#{monBean.keywordDisabled}" .../>
     
    <h:selectOneMenu ...
        <f:selectItems value="#{monBean.maListeDOptions}"/>
        <a4j:support event="onchange" actionListener="#{monBean.changeValeurCombobox}.../>
    </h:selectOneMenu>
    puis dans ton bean :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    private boolean keywordDisabled = false;
     
    public boolean isKeywordDisabled() {
        return keywordDisabled;
    }
    public void setKeywordDisabled(boolean keywordDisabled) {
        this.keywordDisabled = keywordDisabled;
    }
     
    public void changeValeurCombobox(ActionEvent ae) {
        keywordDisabled = xxx; // Change la valeur du booléen selon la valeur choisie dans le combobox.
    }
    Nous sommes tous semblables, alors acceptons nos différences !
    --------------------------------------------------------------
    Liens : Blog | Page DVP | Twitter
    Articles : Hudson | Sonar | Outils de builds Java Maven 3 | Play! 1 | TeamCity| CitConf 2009
    Critiques : Apache Maven

  3. #3
    Membre averti
    Inscrit en
    Mars 2009
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 13
    Par défaut
    Thank you ça m'avance déjà un petit peu! Mais il y a toujours un truc qui me chiffonne:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    public void changeValeurCombobox(ActionEvent ae) {
        keywordDisabled = xxx; // Change la valeur du booléen selon la valeur choisie dans le combobox.
    }
    La valeur du booléen change selon la valeur choisie dans le selectOneMenu...OK...Mais...je devrai faire un test du genre:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (?.equals(valeur1duOneMenu)) { keyWordDisabled = true}....
    mais je devrais mettre quoi à la place du ? ??? je citais l'exemple du richComboBox dans le premier message car lui on est obligé d'avoir un objet contextuel de type String, qui prend la valeur de ce sur quoi j'ai cliqué dans le comboBox. Mais là, on a pas d'objet contextuel? tu vois ce que je veux dire?

  4. #4
    Membre averti
    Inscrit en
    Mars 2009
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 13
    Par défaut
    Nan en fait c'est bon j'ai trouvé...il suffit de prendre la valeur dans mon objet contextuel...par contre il est vexant, car malgré que le booléen soit égal à true en mode debug, en sortant du mode debug il se remet à false, donc mon inputBox n'est pas disabled...J'ai pourtant écrit un saveState qui est censé garder la valeur, mais rien n'y fait =( Le diable de Tasmanie a-t-il une idée à propos de cela?

    Merci de ton aide!

Discussions similaires

  1. Réponses: 1
    Dernier message: 04/04/2013, 14h51
  2. Réponses: 7
    Dernier message: 03/10/2012, 14h51
  3. Réponses: 11
    Dernier message: 21/08/2007, 09h57
  4. Réponses: 4
    Dernier message: 25/04/2007, 16h23
  5. Réponses: 5
    Dernier message: 05/10/2006, 10h18

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