Bonjour les amis,
je voudrais remplir dynamiquement un composant checkboxgroup à partir de la base de données,
et voici mon 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
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.
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
81 /* * 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 Rachid */ 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; } }
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.
Donc je pense que le problème provient de mes tableaux est[] et tt[]
Merci d'avance pour votre aide.
Partager