ArrayList en source de DropDownList

Résolu
engelho Messages postés 115 Date d'inscription mercredi 26 mai 2004 Statut Membre Dernière intervention 2 août 2005 - 11 mai 2005 à 14:40
engelho Messages postés 115 Date d'inscription mercredi 26 mai 2004 Statut Membre Dernière intervention 2 août 2005 - 11 mai 2005 à 15:16
Bonjour,

J'utilise un ArrayLit comme source d'un DropDownList. Mon ArrayList comprend un objet.

l'objet est le suivant :


public
class listeCli
{

string id_client;

string nom_client;

public
string id
{

get{
return id_client;}

set{id_client=
value;}
}



public
string nom
{

get{
return nom_client;}

set{nom_client=
value;}
}
}

et voilà le morceau de code qui refuse de m'obeir :


source=webserv.GetClientList();
Ddl_client.DataSource = source ;

for(
int i=0;i<source.Count;i++)
{

Ddl_client.DataTextField = ((listeCli)source[i]).nom;
Ddl_client.DataValueField = ((listeCli)source[i]).id ;
}
Ddl_client.DataBind() ;


La fonction GetClientList(); me renvois l'ArrayList comprend les objets.

Lorsque j'execute ce code, j'obtiens le message d'erreur suivant :

listeCli(donc mon objet) does not contains a property with the name blablabla

en fait, blablabla correspond justement a ce que je veux afficher dans mon DropDownList!!!

je dois admettre que les sources et moi, on est pas copains, mais là, je ne comprend plus.... pourquoi il râle?

Je précise que j'ai aussi essayé le même code sans la boucle "for" (il plante de la même façon, et je pense pas que ca aide puisque j'ai besoin de passer une valeur a source pour qu'elle soit reconnu comme objet listeCli).

Et si je passe Ddl_client.DataSource=source; sans rien mettre dans Ddl_client.DataTextField et Ddl_client.DataValueField, mon DropDownList m'affiche plein de ligne (autant que d erésultat en fait) avec ecrit listeCli dedans.....

si quelqu'un a une idée sur la manière d'alimenter ma bestiole, ca m'arrangerais

merci d'avance.

5 réponses

cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
11 mai 2005 à 14:59
Salut,

DataTextField et DataValueField servent à donner le nom d'une propriété à utiliser respectivement pour l'affichage et la valeur. (regardes les pages de la doc) :

Par conséquent tu dois probablement remplacer :
Ddl_client.DataSource = source ;
for(int i=0;i<source.Count;i++)
{
Ddl_client.DataTextField = ((listeCli)source[i]).nom;
Ddl_client.DataValueField = ((listeCli)source[i]).id ;
}
Ddl_client.DataBind() ;

Par :
Ddl_client.DataSource = source ;
Ddl_client.DataTextField = "nom";
Ddl_client.DataValueField = "id" ;
Ddl_client.DataBind() ;

Cocoricoooooooo !!!!
coq
MVP Visual C#
MorpionMx Messages postés 3466 Date d'inscription lundi 16 octobre 2000 Statut Membre Dernière intervention 30 octobre 2008 57
11 mai 2005 à 14:59
Ddl_client.Datasource = source;

Ddl_client.DisplayMember = "nom"; (ou id, selon ce que tu veux afficher)



pas besoin de faire le for(...) ensuite


Mx
cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
11 mai 2005 à 15:02
erf lol
Sinon je crois qu'il parle de WebForm, pas de WinForm :-)

Cocoricoooooooo !!!!
coq
MVP Visual C#
MorpionMx Messages postés 3466 Date d'inscription lundi 16 octobre 2000 Statut Membre Dernière intervention 30 octobre 2008 57
11 mai 2005 à 15:05
En effet, "DropDownList", j'ai pas tilté :p

Mx

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
engelho Messages postés 115 Date d'inscription mercredi 26 mai 2004 Statut Membre Dernière intervention 2 août 2005
11 mai 2005 à 15:16
je parle effectivement de webform... faudra que je pense a préciser a l'avenir... lol

Mouarf... il faut croire que je fatigue.

Enfin, ca marche. merci encore.
Rejoignez-nous