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 : 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 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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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.
Partager