Gridview et connexion à une table crée dynamiquement

Le
Bernard
Bonsoir et d'avance merci à tous,

je crée une table dynamiquement de la façon suivante (j'ai simplifié) :
en sachant que "mesInfos" est un tableau alimenté par ailleurs et que
"maGrid" ne contient qu'une seule colonne de type Templatefield.

Dim MonDataset As DataSet = New DataSet()
Dim table1 As DataTable = MonDataset.Tables.Add("Matable")
Dim column As DataColumn = table1.Columns.Add("MaColonne",
System.Type.GetType("System.String"))
Dim row As DataRow
Dim i As Integer
For i = 0 To mesInfos.Length - 1
row = table1.NewRow()
row("MaColonne") = mesInfos(i)
table1.Rows.Add(row)
Next i
MaGrid.DataSource = MonDataset.Tables("Matable")
MaGrid.DataMember = "MaColonne"
MaGrid.DataBind()

Par exemple si j'ai 4 lignes dans ma table "magrid" affiche bien 4 lignes,
si j'ai 12 lignes dans ma table "magrid" affiche bien 12 lignes mais la
colonne m'affiche tout le temps System.data.datarowview pour chaque ligne.

Je sais que je pourrais faire directement MaGrid.DataSource = mesInfos (et
ça marche) mais ce n'est pas ce que je veux car là c'est pour l'exemple que
j'ai utilisé un tableau qui alimente une table crée dynamiquement (mais dans
mon programme d'origine c'est autrement que je l'alimente et je n'ai pas la
place pour tout écrire, c'est juste pour évoquer mon problème que j'utilise
un tableau).

J'ai essayé avec MaGrid.DataMember = "aaa" pour voir et j'obtiens le même
résultat donc je pense que c'est de ce côté que je bugue.
Même chose si je ne renseigne pas MaGrid.DataMember.
Donc ma question est : comment obtenir pour chaque ligne le contenu de la
colonne "MaColonne" ?

merci de m'expliquer où je me plante.
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Gilles TOURREAU
Le #12169071
Le Tue, 27 Nov 2007 03:26:00 +0100, Bernard

Bonsoir et d'avance merci à tous,

je crée une table dynamiquement de la façon suivante (j'ai simplifié) :
en sachant que "mesInfos" est un tableau alimenté par ailleurs et que
"maGrid" ne contient qu'une seule colonne de type Templatefield.

Dim MonDataset As DataSet = New DataSet()
Dim table1 As DataTable = MonDataset.Tables.Add("Matable")
Dim column As DataColumn = table1.Columns.Add("MaColonne",
System.Type.GetType("System.String"))
Dim row As DataRow
Dim i As Integer
For i = 0 To mesInfos.Length - 1
row = table1.NewRow()
row("MaColonne") = mesInfos(i)
table1.Rows.Add(row)
Next i
MaGrid.DataSource = MonDataset.Tables("Matable")
MaGrid.DataMember = "MaColonne"
MaGrid.DataBind()

Par exemple si j'ai 4 lignes dans ma table "magrid" affiche bien 4
lignes,
si j'ai 12 lignes dans ma table "magrid" affiche bien 12 lignes mais la
colonne m'affiche tout le temps System.data.datarowview pour chaque
ligne.

Je sais que je pourrais faire directement MaGrid.DataSource = mesInfos
(et
ça marche) mais ce n'est pas ce que je veux car là c'est pour l'exemple
que
j'ai utilisé un tableau qui alimente une table crée dynamiquement (mais
dans
mon programme d'origine c'est autrement que je l'alimente et je n'ai pas
la
place pour tout écrire, c'est juste pour évoquer mon problème que
j'utilise
un tableau).

J'ai essayé avec MaGrid.DataMember = "aaa" pour voir et j'obtiens le même
résultat donc je pense que c'est de ce côté que je bugue.
Même chose si je ne renseigne pas MaGrid.DataMember.
Donc ma question est : comment obtenir pour chaque ligne le contenu de la
colonne "MaColonne" ?

merci de m'expliquer où je me plante.




Essayez :

MaGrid.DataSource = MonDataset.Tables("Matable")
MaGrid.DataMember = ""

ou alors

MaGrid.DataSource = MonDataset
MaGrid.DataMember = "Matable"

Mais il faudrait nous montrer votre code ASP .NET de votre GridView pour
voir si les colonnes sont bien bindée...

Cordialement

--
Gilles TOURREAU


S.A.R.L. P.O.S
Le spécialiste en motoculture depuis + de 30 ans !
http://www.pos.fr
Publicité
Poster une réponse
Anonyme