Bonsoir à tous,
je poste car j'ai un soucis a la liaison d'un datatable à un datagrid.
Je suis sous VS 2003.
Le soucis n'arrive que quand je charge le dataset avec la méthode ReadXml
En effet ma table contient quatre champs, un de type integer, un de type boolean et deux de type sring.
je n'affiche dans le datagrid que le boolean ( qui est donc une case à cocher) et les deux string via le tablestyle :
Le problème est que quand on ne charge pas le dataset via readxml mais que l'on créé la table de toute part via le code, tout fonctionne bien mais que quand on fait le chargement via readxml la colonne à coché est grisée et cochée, quand on clique sur une case à coché elle se dégrise et fonctionne correctement jusque quand elle perd le focus elle se grise et coche même si elle était décochée, chose mystérieuse car quand j'enregistre le dataset avec savexml et que je regarde dedans les valeurs de la colonne booléenne sont bien celle que j'ai mise avant que la case à cocher ne se regrise et recoche...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 Dim dgs As New DataGridTableStyle dgs.MappingName = "phrase" Dim DGBC As New DataGridBoolColumn DGBC.MappingName = "actif" DGBC.HeaderText = "actif?" DGBC.AllowNull = False DGBC.Width = 20 dgs.GridColumnStyles.Add(DGBC) Dim TCFirstName As New DataGridTextBoxColumn TCFirstName.MappingName = "descrition" TCFirstName.HeaderText = "Description" TCFirstName.Width = 75 dgs.GridColumnStyles.Add(TCFirstName) TCFirstName = New DataGridTextBoxColumn TCFirstName.MappingName = "texte" TCFirstName.HeaderText = "texte" TCFirstName.Width = 75 TCFirstName.ReadOnly = True dgs.GridColumnStyles.Add(TCFirstName) DataGrid1.TableStyles.Add(dgs)
voici le code de chargement du dataset :
Merci à tout ceux qui auront lut ce post, Bonne nuit (ou journée )
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28 Private Sub chargeDts() Try ds.ReadXml("c:\antispasmeur.xml") Catch ex As Exception MsgBox("Le fichier de donnée contenant les phrases à envoyer n'a pas été trouvé") Dim strNomTable As String = "phrase" Dim dt As DataTable = ds.Tables.Add(strNomTable) Dim column As DataColumn column = New DataColumn("id") column.DataType = System.Type.GetType("System.Int32") column.AutoIncrement = True dt.Columns.Add(column) column = New DataColumn("actif") column.DataType = System.Type.GetType("System.Boolean") column.DefaultValue = True dt.Columns.Add(column) column = New DataColumn("descrition") column.DataType = System.Type.GetType("System.String") dt.Columns.Add(column) column = New DataColumn("texte") column.DataType = System.Type.GetType("System.String") dt.Columns.Add(column) End Try
Partager