Problème de DataBind: DataItem = <valeur non définie>

Résolu
jaisus Messages postés 8 Date d'inscription lundi 27 octobre 2008 Statut Membre Dernière intervention 6 mars 2009 - 25 févr. 2009 à 16:45
jaisus Messages postés 8 Date d'inscription lundi 27 octobre 2008 Statut Membre Dernière intervention 6 mars 2009 - 6 mars 2009 à 11:47
Bonjour à tous et à toutes!

J'ai quelques petits problèmes:

- Le premier est que j'ai comme contrainte de travail de bosser sur VS 2003 et donc des DataGrid.
- Le deuxième est que j'ai besoin de retrouver les items DataBindés à l'intérieur d'un DataGrid or voici ce que m'affiche un espion disposé après le dit DataBind: (en abrégé)

   for(int k=0; k<DTG.Items.Count; k++)
   {
         DataGridItemCollection MesItems = DTG.Items
   }

RESULTATS (abrégés):

-> MesItems
   |-> items                            {Count = 150} (Donc les items sont bien là...
      |-> [0]
         |->DataItem                 <valeur non définie> Voilà tout le problème ...

Quelqu'un aurait-il une solution pour cette odieux problème ???

En vous remerciant tous pour l'aide que vous m'apportez chaque jour.

JAISUS

3 réponses

jaisus Messages postés 8 Date d'inscription lundi 27 octobre 2008 Statut Membre Dernière intervention 6 mars 2009
6 mars 2009 à 11:47
J'ai fini par comprendre mieux qu'avant:

Le datagrid n'est pas à voir comme un tableau à deux dimensions.
En effet c'est un tableau d'objet à une seule dimension: un tableau d'objet LIGNE.
Ces même objets LIGNEsont composés de cellules.

Donc si l'on veut spécifier une case il faut passer par la solution suivante:

dtgContactTab.Items[k] /* désignation de la LIGNE*/
.Cells[5] /*Désignation de la COLONNE (cellule)*/

Merci d'avoir tout de même pris le temps de me lire.
3
jaisus Messages postés 8 Date d'inscription lundi 27 octobre 2008 Statut Membre Dernière intervention 6 mars 2009
25 févr. 2009 à 17:00
Bon, j'ai trouvé une solution super sale au problème mais elle a le mérite de marcher: je rentre les données dans une ArrayList... Je ne vois pas pourquoi ça marche mieux qu'avant et si quelqu'un a la réponse à cette question ou encore une solution plus propre -> JE PRENDS !!!

Exemple:
   ArrayList ALTemp = new ArrayList();
   for(int k=0; k<dtgContactTab.Items.Count; k++)
   {
         ALTemp.Add(dtgContactTab.Items[k].Cells[5]); // C'est la colonne 5 qui m'intéresse
   }

Salutations sincères !
0
jaisus Messages postés 8 Date d'inscription lundi 27 octobre 2008 Statut Membre Dernière intervention 6 mars 2009
2 mars 2009 à 15:50
J'ai fini par comprendre:

Le datagrid n'est pas à voir comme un tableau à deux dimensions.
En effet c'est un tableau d'objet à une seule dimension: un tableau d'objet COLONNE.
Ces même objets COLONNE sont composés de cellules.

Donc si l'on veut spécifier une case il faut passer par la solution suivante:

dtgContactTab.Items[k] /* désignation de la colonne*/
.Cells[5] /*Désignation de la cellule*/

Merci d'avoir tout de même pris le temps de me lire.
0
Rejoignez-nous