Gridview et connexion à une table crée dynamiquement
1 réponse
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" ?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
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" ?
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
Le Tue, 27 Nov 2007 03:26:00 +0100, Bernard
<Bernard@discussions.microsoft.com> 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" ?
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" ?