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 :

remplissage dynamique du checkboxgroup


Sujet :

JSF Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Décembre 2009
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 44
    Par défaut remplissage dynamique du checkboxgroup
    Bonjour

    je voudrais remplir dynamiquement un composant checkboxgroup à partir de la base de données,

    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
    33
     
     
    public String button1_action() throws SQLException, NamingException, ClassNotFoundException {
            // TODO: Process the action. Return value is a navigation
            // case name where null will return to the same page.
     
        int ss = Integer.parseInt(t1.getText().toString());
     
            Crmtype crm = new Crmtype() ;
            Vector v01 = (Vector)crm.getTypeById(ss);
            Enumeration e = v01.elements();
     
             for(int i=0;i<v01.size();i++){
     
     String est[] = new String[v01.size()];
            while (e.hasMoreElements()){
     
             crm = (Crmtype)e.nextElement();
     
             String tt[] = new String[]{String.valueOf(crm.getNum_type())};
              est[i] = tt[i];
     
                   System.out.println(est[i]);
     
                   cbg3.setSelected(new String[]{""+est[i]+""});
     
      		  }
     
                 }
            return null;
        }
     
    }
    le peuplement du checkboxgroup se fait suit à l'exécution d'une requete select assuré par la méthode getTypeById(ss) avec paramètres d'entré fournis par le champ de texte.

    le problème c'est que uniquement la case à cocher correspondante à la dérnière valeur du résultat est activée.... par contre la ligne d'affichage "System.out.println(est[i]);" renvoi les trois valeurs.

    Merci pour votre aide.

  2. #2
    Membre averti
    Inscrit en
    Décembre 2009
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 44
    Par défaut
    Re-Bonjour

    Dans le cas ou ce n'est pas trés clair je serais ravi de vous donner plus d'explications

    Merci

  3. #3
    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
    Comme pour tous les composants JSF, si la valeur du checkBoxgroup dans le bean est disponible et correspond aux valeurs des composants dans la page, ces derniers seront automatiquement sélectionnés.

  4. #4
    Membre averti
    Inscrit en
    Décembre 2009
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 44
    Par défaut
    oui j'ai bien dit que le checkboxgroup s'active mais seulement la case correspondante à la dernière valeur du tableau

    par exemple si le résultat me renvoi 1,2,3 avec system.out.println, seulement la case correspondante à la valeur 3 est activée

  5. #5
    Membre averti
    Inscrit en
    Décembre 2009
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 44
    Par défaut
    aprés d'autres investigations je remarque que toutes les valeurs du résultat qui viennet de la base de données sont enregistés dans la première case de mon tableau "est" c'est à dire dans la case est[0], je crois que le problème vient de là, je me demande comment je pourrais faire pour répartir le résultat sur leur cases respectives???

  6. #6
    Membre averti
    Inscrit en
    Décembre 2009
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 44
    Par défaut
    toujours pas de réponse !!!

    je tourne au rond tout seul ....

    je sais qu'il y'a une solution.

  7. #7
    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 peux tester d'abord avec des éléments simples voir si ça marche au lieu de récupérer les valeurs de la base; l'erreur vient peut être de :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     cbg3.setSelected(new String[]{""+est[i]+""});
    je ne sais pas quelle librairie de composants, il semble que tu utilise un binding??
    tu en a même pas besoin, voilà un exemple simple avec selectOneMenu.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    private String testValue  = "oui";
     
    //getter/setter
    Ici la valeur oui sera sélectionné à l'affichage de la page:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <h:selectOneMenu value="#{testBean.testValue}">
    <h:selectItem itemValue="Ne sais pas" />
    <h:selectItem itemValue="oui" />
    <h:selectItem itemValue="non" />
    </h:selectOneMenu>

  8. #8
    Membre confirmé
    Inscrit en
    Octobre 2008
    Messages
    127
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 127
    Par défaut
    Salut

    Citation Envoyé par scania113H Voir le message
    aprés d'autres investigations je remarque que toutes les valeurs du résultat qui viennet de la base de données sont enregistés dans la première case de mon tableau "est" c'est à dire dans la case est[0], je crois que le problème vient de là, je me demande comment je pourrais faire pour répartir le résultat sur leur cases respectives???
    il faut initialiser ton tableau est avant la boucle for
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    .
    .
    String est[] = new String[v01.size()];
    for(int i=0;i<v01.size();i++){
    ...
    }
    bonne chance

  9. #9
    Membre averti
    Inscrit en
    Décembre 2009
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 44
    Par défaut
    Citation Envoyé par totoz Voir le message
    Salut



    il faut initialiser ton tableau est avant la boucle for
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    .
    .
    String est[] = new String[v01.size()];
    for(int i=0;i<v01.size();i++){
    ...
    }
    bonne chance
    Salut totoz,

    je l'ai déja fait et c'est toujours la meme chose, ce qu'en fait j'ai remarqué c'est que toutes les valeurs renvoyé par mon bean sont enregistrer dans la première case du tableau est, et c'est ça ce qui me rend malade...

  10. #10
    Membre averti
    Inscrit en
    Décembre 2009
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 44
    Par défaut
    pour un peu plus de détails, voici mon bean, je rappel que j'utilise woodstock comme librairie :

    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
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
     
    /*
     * To change this template, choose Tools | Templates
     * and open the template in the editor.
     */
     
    package webapplication2;
     
    import com.sun.webui.jsf.model.Option;
    import java.sql.Connection;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.sql.Statement;
    import java.util.Vector;
    import javax.naming.NamingException;
    import util.ConnectionManager;
     
    /**
     *
     * @author scania
     */
    public class Crmtype {
     
        public int num_type;
        public String lib_type;
     
        public Crmtype() {
        }
     
        public Crmtype(int num_type) {
            this.num_type = num_type;
        }
     
        public Crmtype(int num_type, String lib_type) {
            this.num_type = num_type;
            this.lib_type = lib_type;
        }
     
     
     
     
        public String getLib_type() {
            return lib_type;
        }
     
        public void setLib_type(String lib_type) {
            this.lib_type = lib_type;
        }
     
        public int getNum_type() {
            return num_type;
        }
     
        public void setNum_type(int num_type) {
            this.num_type = num_type;
        }
     
     
     
     
    public Vector getTypeById(int num) throws SQLException, NamingException, ClassNotFoundException
     
                {
    Vector v1 = new Vector();
    //Crmtype crmtype=null;
    Connection connection = ConnectionManager.getInstance().getConnection();
    Statement statement = connection.createStatement();
    ResultSet resultSet=statement.executeQuery("SELECT num_type FROM crm_visite_type WHERE num_visite=\'"+num+"\'");
    while(resultSet.next())
    	{
    	v1.addElement(new Crmtype(resultSet.getInt("num_type")));
    	}
    		resultSet.close();
    		statement.close();
    	return v1;
    	     }
     
     
     
              }

  11. #11
    Membre confirmé
    Inscrit en
    Octobre 2008
    Messages
    127
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 127
    Par défaut
    Salut scania113H
    essayer de remplacer ton Vector par une List<Integer>
    je pense que ça sera régler
    j'attends ton retour
    bonne chance

Discussions similaires

  1. remplissage dynamique du checkboxgroup
    Par scania113H dans le forum Collection et Stream
    Réponses: 0
    Dernier message: 20/04/2010, 20h14
  2. Réponses: 2
    Dernier message: 01/05/2007, 17h15
  3. recuperation et remplissage dynamique des champs de textes
    Par gloglo dans le forum Général JavaScript
    Réponses: 24
    Dernier message: 24/04/2007, 18h55
  4. [Prototype] Remplissage dynamique
    Par tiger63 dans le forum Bibliothèques & Frameworks
    Réponses: 1
    Dernier message: 12/03/2007, 17h29
  5. Remplissage dynamique d'un tableau
    Par ahouba dans le forum Access
    Réponses: 7
    Dernier message: 29/06/2006, 18h57

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