Bonjour,
J'ai un petit soucis sur un passage d'objet.
Je rempli une ListBox (c'est une multi sélection) avec des objets "Attribut" en utilisant l'objet ASP.NET ObjectDataSource (DataBinding).
Je retrouve bien mes "Attribut" dans ma ListBox (la méthode surchargée ToString()).
Maintenant, je souhaite pouvoir passer ces "Attribut" de la première ListBox vers une seconde (c'est un filtre, on choisi les "Attribut" présents dans ce filtre et on enregistre).
Mais je n'arrive pas à caster l'objet ListItem en "Attribut".
Voici le code qui sert à passer les objets d'une liste à l'autre :
et voici le code que je souhaite utiliser pour récupérer mes objets :Code:
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 public void goRight(object sender, EventArgs e) { for (int i = 0; i < lstBoxLeft.Items.Count; i++) { if (lstBoxLeft.Items[i].Selected) { lstBoxRight.Items.Add(lstBoxLeft.Items[i]); } } for (int i = 0; i < lstBoxLeft.Items.Count; i++) { if (lstBoxLeft.Items[i].Selected) { lstBoxLeft.Items.Remove(lstBoxLeft.Items[i]); i = i-1; } } lstBoxLeft.ClearSelection(); lstBoxRight.ClearSelection(); } public void goLeft(object sender, EventArgs e) { for (int i = 0; i < lstBoxRight.Items.Count; i++) { if (lstBoxRight.Items[i].Selected) { lstBoxLeft.Items.Add(lstBoxRight.Items[i]); } } for (int i = 0; i < lstBoxRight.Items.Count; i++) { if (lstBoxRight.Items[i].Selected) { lstBoxRight.Items.Remove(lstBoxRight.Items[i]); i = i - 1; } } lstBoxLeft.ClearSelection(); lstBoxRight.ClearSelection(); }
Même un simple code comme le suivant produit une erreur :Code:
1
2
3
4
5
6 List<Attribut> list = new List<Attribut>(); foreach(ListItem item in lstBoxRight.Items){ Attribut att = (Attribut)item; list.Add(att); }
Merci d'avance à ceux qui m'aideront.Code:
1
2
3
4
5
6 public void view(object sender, EventArgs e) { Attribut att = (Attribut)lstBoxLeft.SelectedItem; panelMessage.InnerHtml = att.Nom; }
PS : Si des choses ne sont pas claires, dites le moi.