Remplir une collection d'un objet avec une checkboxList [Résolu]

satsumy
Messages postés
14
Date d'inscription
samedi 15 décembre 2007
Dernière intervention
17 mars 2008
- 11 févr. 2008 à 15:48 - Dernière réponse : satsumy
Messages postés
14
Date d'inscription
samedi 15 décembre 2007
Dernière intervention
17 mars 2008
- 17 mars 2008 à 16:28
Bonjour,

J'ai une classe "Mission" avec un id, date, heure... et une collection d'intervenants. Les Intervenants font partie d'une autre classe "Intervenant". 
Code de ma classe Mission :
public

class
Mission{

private
string num_ordre;

private
DateTime date;

private
string heure;

private
string observations;

private
List<
Intervenant> lesIntervenants;

}

Ensuite, j'ai une checkboxList qui se remplit avec  un sqlDatasource affichant le nom et prénom de l'intervenant.
Ma question : j'aimerai créer cette liste des intervenants pour la création de mon objet Mission. Tous les intervenants cochés devraient s'ajouter à ma liste d'intervenants.

Mon code :List

<MaClasse.Effectif> intervenants = newList<MaClasse.Effectif>();

for (
int i = 1; i < (cblIntervenants.Items.Count); i++){

if (cblIntervenants.Items[i].Selected){   intervenants.Add(

Convert.ChangeType(cblIntervenants.Items[i], MaClasse.
Intervenant));}}
MaClasse.

Mission laMission =
new MaClasse.
Mission(idMission, date, heure
,observations, intervenants);

Il me met un msg d'erreur disant que le type n'est pas valide!!!(Normal)

Merci de m'aider.
Afficher la suite 

Votre réponse

3 réponses

Meilleure réponse
ecosmose
Messages postés
48
Date d'inscription
vendredi 5 novembre 2004
Dernière intervention
30 septembre 2010
- 17 mars 2008 à 01:50
3
Merci
Bonsoir,

2 situationjs sont possibles...

- Les intervenant sélectionnés sont déjà créées en tant qu'objet de la classe Intervenant et dans ce cas précis tu peux obtenir ces Objets dans la liste "intervenants"  grace à des identifiants ou autres informations unique contenue dans la checkboxlist...

-Soit le cas qui apparement nous concerne, les intervenants ne sont pas instancés (créés avec new) lorsque qu'ils sont dessinées dans la Chekboxlist, c'est à dire que les informations des intervenants qui sont affichées dans la chekboxlists ne proviennent des objets. Dans ce cas là je te conseillerais de créer ces intervenats avant de les ajouter à ta liste...car tu ne peux pas ajouter d'objet inexistant dans une liste (ca parait logique)...il faudrait donc que tu codes un constructuer Intervenant(Type1 Info1,Type 2 Info2...) ou les infos correspondantes aux données que tu connais au moment de leur séléction..

Essaye donc de comprendre ce code..

List<Intervenant
> intervenants = newList<Intervenant
>();

for (
int i = 1; i < (cblIntervenants.Items.Count); i++){
if (cblIntervenants.Items[i].Selected){

Intervenant IntervenatToAdd = new Intervenant(MonInfo1,MonInfo2,....);

   intervenants.Add(IntervenantToAdd);

}

Mission laMission =
new MaClasse.
Mission(idMission, date, heure
,observations, intervenants);

);}}
Ce code instancie un objet intervenant à chaque intervenant coché dans la cheklist, puis l'ajout est possible puisque la Classe T (ici la Classe  'intervenant')de cet Objet correspond à la List<T>  (la List

List<Intervenant
> intervenants )

BINOME de ECOSMOSE
Association ecologique d'actions de culture et d'Informations

Merci ecosmose 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 94 internautes ce mois-ci

Commenter la réponse de ecosmose
Meilleure réponse
satsumy
Messages postés
14
Date d'inscription
samedi 15 décembre 2007
Dernière intervention
17 mars 2008
- 17 mars 2008 à 16:28
3
Merci
Merci d'avoir répondu,

j'ai réussi à résoudre mon problème. Pour ceux que ca interesse voici ce que j'ai réussi a faire avec une solution similaire à ce que tu m'a conseillé :

List

<MaClasse.
Effectif> intervenants =
new
List<MaClasse.
Effectif>();

for (
int i = 0; i <= cblIntervenants.Items.Count - 1; i++){

if (cblIntervenants.Items[i].Selected){

MaClasse.

Effectif lIntervenant =
new MaClasse.
Effectif();lIntervenant.setIdEffectif(

Convert.ToInt16(cblIntervenants.Items[i].Value));
intervenants.Add(lIntervenant);

J'ai ensuite ajouté a ma mission et c'est tout ok !!

Merci

Merci satsumy 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 94 internautes ce mois-ci

Commenter la réponse de satsumy
satsumy
Messages postés
14
Date d'inscription
samedi 15 décembre 2007
Dernière intervention
17 mars 2008
- 11 févr. 2008 à 15:52
0
Merci
Je me suis trompée au début, ma liste est :

List<Intervenant> intervenants = newList>();

et cblIntervenants est ma checkboxList.

Voila merci
Commenter la réponse de satsumy

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.