Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Gridview et connexion à une table crée dynamiquement

1 réponse
Avatar
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.

1 réponse

Avatar
Gilles TOURREAU
Le Tue, 27 Nov 2007 03:26:00 +0100, Bernard
a écrit:

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