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]comment utiliser ajaxListener pour mettre a jour une liste


Sujet :

JSF Java

  1. #1
    Membre régulier Avatar de solawe
    Inscrit en
    Juillet 2006
    Messages
    368
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Juillet 2006
    Messages : 368
    Points : 97
    Points
    97
    Par défaut [a4j]comment utiliser ajaxListener pour mettre a jour une liste
    Bonjour,

    j'ai deux listes de type : selectOneMenu,à l'affichage de la page,seule la 1ere liste est remplie,je veux que une fois je selectionne une valeur dans cette liste,la 2eme liste se remplit avec des valeurs differentes selon ce que jai choisi dans la 1ere liste

    j'ai cherché sur le net et j'ai trouvé que ajaxListener permet cette possibilité,mais j'ai pas rouvé un exemple qui peut me guider.

    je vous serai reconnaissant si vous pouvez m'indiquer des liens ou des exemples et indcations dans ce sens.

    merci bcp.

  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 : 46
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Java craftsman
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2005
    Messages : 3 790
    Points : 7 275
    Points
    7 275
    Par défaut
    Tu fais comme ça :

    Sur ton 1er selectOneMenu, tu ajoutes un a4j:support, sur l'évenement onchange.
    Tu lui demandes d'exécuter une action de ton bean Java (qui mettra à jour les valeurs de ton 2e selectOneMenu), puis de rafraichir l'autre selectOneMenu. Quelque chose comme ça :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <h:selectOneMenu id="som1" value="#{monBean.listeUne}" ...>
        ...
        <a4j:support event="onchange" action="#{monBean.updateListeDeux}" reRender="som2"/>
    </h:selectOneMenu>
     
     
    <h:selectOneMenu id="som2" value="#{monBean.listeDeux}" ...>
        ...
    </h:selectOneMenu>
    (pense à tout mettre dans un form, hein)

    Et dans ton bean :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    public String updateListeDeux() {
        listeDeux = ...;
        return null;
    }
    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 régulier Avatar de solawe
    Inscrit en
    Juillet 2006
    Messages
    368
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Juillet 2006
    Messages : 368
    Points : 97
    Points
    97
    Par défaut
    merci beaucoup pour ta réponse!! je vais la tester tout de suite et je te tiens au courant du résultat

  4. #4
    Membre régulier Avatar de solawe
    Inscrit en
    Juillet 2006
    Messages
    368
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Juillet 2006
    Messages : 368
    Points : 97
    Points
    97
    Par défaut
    Salut,

    je pense que la methode chargée de mettre a jour la deuxieme liste doit prendre en parametre un evenement pour récupérer la valuer choisie dans la 1ere liste, j'ai testé "AjaxEvent" mais j'arrive pas à récupérer la valeur,
    peux u stp m'indiquer comment faire.

    merci

  5. #5
    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 : 46
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Java craftsman
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2005
    Messages : 3 790
    Points : 7 275
    Points
    7 275
    Par défaut
    Désolé, je corrige mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    <h:selectOneMenu id="som1" value="#{monBean.valeurUne}" ...>
        <f:selectItems value="#{monBean.listeUne}"/>
        <a4j:support event="onchange" action="#{monBean.updateListeDeux}" reRender="som2"/>
    </h:selectOneMenu>
     
     
    <h:selectOneMenu id="som2" value="#{monBean.valeurDeux}" ...>
        <f:selectItems value="#{monBean.listeDeux}"/>
    </h:selectOneMenu>
    (j'avais inversé le value du selectOneMenu avec celui du selectItems).

    Donc dans ton code updateListeDeux, tu peux connaitre la valeur choisie, puisqu'elle est conservée dans la propriété valeurUne du bean...

    Sinon, pour ta question, tu pourrais utiliser l'actionListener au lieu de l'action, et dans ton bean, tu aurais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    public void updateListeDeux(ActionEvent evt) {
        ...
    }
    mais c'est inutile, vu que la valeur que tu cherches est dans monBean.valeurUne...
    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

  6. #6
    Membre régulier Avatar de solawe
    Inscrit en
    Juillet 2006
    Messages
    368
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Juillet 2006
    Messages : 368
    Points : 97
    Points
    97
    Par défaut
    !! merci beaucoup,ça marche tres bien,

    j'ai juste une petite question,est ce que si j'utilise le a2j:region ça va ameliorer les performance et ne recharger que la petite partie des listes de toute la page ou meme sans cette balise ce n'est que la 2eme liste qui se recharge.

    merci bcp

Discussions similaires

  1. Utiliser AVG pour un calcul sur une liste d'entité
    Par VirgApps dans le forum Langage SQL
    Réponses: 3
    Dernier message: 01/10/2014, 14h46
  2. Réponses: 5
    Dernier message: 30/05/2011, 10h35
  3. Mettre a jour une liste de saisie
    Par Lameth dans le forum VBA Access
    Réponses: 2
    Dernier message: 11/08/2008, 18h21
  4. Réponses: 2
    Dernier message: 03/05/2008, 09h07
  5. Réponses: 2
    Dernier message: 27/04/2006, 16h45

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