Gridview et connexion à une table crée dynamiquement

cs_prady92 Messages postés 9 Date d'inscription vendredi 16 septembre 2005 Statut Membre Dernière intervention 16 février 2010 - 27 nov. 2007 à 18:19
cs_prady92 Messages postés 9 Date d'inscription vendredi 16 septembre 2005 Statut Membre Dernière intervention 16 février 2010 - 27 nov. 2007 à 18:21
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.

ci-joint du code afin de bien me faire comprendre car il n'est pas simple d'expliquer




 
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 AsIntegerFor i = 0To 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()
 





<!-- END TEMPLATE: bbcode_code -->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 du tout MaGrid.DataMember .

avec


MaGrid.DataSource = MonDataset
MaGrid.DataMember = "MaColonne"
MaGrid.DataBind()


j'obtiens l'erreur : Le IListSource utilisé ne contient pas une source de données appelée 'MaColonne'. Vérifiez votre valeur DataMember.

Donc ma question est : comment obtenir pour chaque ligne de MaGrid le contenu de la
colonne "MaColonne" ?

merci de m'expliquer où je me plante.

1 réponse

cs_prady92 Messages postés 9 Date d'inscription vendredi 16 septembre 2005 Statut Membre Dernière intervention 16 février 2010
27 nov. 2007 à 18:21
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.

ci-joint du code afin de bien me faire comprendre car il n'est pas simple d'expliquer
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 AsInteger
For i = 0To 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 du tout MaGrid.DataMember .

avec
MaGrid.DataSource = MonDataset
MaGrid.DataMember = "MaColonne"
MaGrid.DataBind()
j'obtiens l'erreur : Le IListSource utilisé ne contient pas une source de données appelée 'MaColonne'. Vérifiez votre valeur DataMember.

Donc ma question est : comment obtenir pour chaque ligne de MaGrid le contenu de la
colonne "MaColonne" ?

merci de m'expliquer où je me plante.
0
Rejoignez-nous