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 :
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)
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...

voici le code de chargement du dataset :
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
Merci à tout ceux qui auront lut ce post, Bonne nuit (ou journée )