VB.NET- Affecter style de colonne à DataGrig

Résolu
spaceinfo -  
 spaceinfo -
Bonjour,

Je suis actuellement sur un programme VB.NET pour PDA (Windows CE 6).

J'ai une DataGrid contenant 3 champs : EAN, Poids et Pièce.
Mon remplissage se passe sans problème avec les données retournées depuis un WebService.

Mon problème étant que je n'arrive pas à affecter des styles à mes colonnes.
En effet, je créer 3 styles avec des en-têtes et des longueurs spécifiques mais ceci n'est pas mise à jour et il m'affiche toujours les entêtes traditionnels sans me corriger les longueurs des champs.

J'espère avoir été clair, voici le code :

' Affectation des données dans la DataGrid
            c_dtg_pqt.DataSource = tt900_pfl

            Dim tableStyle As New DataGridTableStyle()
            tableStyle.MappingName = "Paquets"

            'Discontinued.
            Dim column As New DataGridTextBoxColumn()
            column.MappingName = ""
            column.HeaderText = ""
            column.Width = 30
            'tableStyle.GridColumnStyles.Add(column)

            ' EAN
            column = New DataGridTextBoxColumn()
            column.MappingName = "EAN"
            column.HeaderText = "EAN"
            column.Width = 30
            tableStyle.GridColumnStyles.Add(column)

            ' Poids
            column = New DataGridTextBoxColumn()
            column.MappingName = "Poids"
            column.HeaderText = "Poids"
            column.Width = 140
            tableStyle.GridColumnStyles.Add(column)

            ' Pièce
            column = New DataGridTextBoxColumn()
            column.MappingName = "Pièce"
            column.HeaderText = "Pièce"
            tableStyle.GridColumnStyles.Add(column)

            ' Ajouter le style à la datagrid
            c_dtg_pqt.TableStyles.Add(tableStyle)


Auriez-vous une idée s'il vous plait ?
Je sèche complêtement....

Merci d'avance.

A voir également:

4 réponses

Nico# Messages postés 323 Date d'inscription   Statut Membre Dernière intervention   102
 
Slt vu comme sa et parce que je suis fatigue fait un Update ou Refresh pour voir je regarderais sa de plus pret demain
0
Nico# Messages postés 323 Date d'inscription   Statut Membre Dernière intervention   102
 
Après mure réflexion ( plutot une grande tasse de café :) ) regarde si le mappingname correspond bien au tablename de ton datatable
0
spaceinfo
 
Bonjour Nico,

J'ai exploré ton idée concernant les MappingName de mon objet column. J'ai essayé de lui affecter à chaque fois le MappingName de ma TableStyle, c'est à dire 'Paquets'. Malheureusement cela ne résoud rien et m'affiche au contraire l'exception "Value does not fall within the expected range".

Par contre, je n'ai pas de DataTable. Cela viendrait-il de ça ? Aurais-tu un exemple d'utilisation s'il te plait ?

Merci d'avance.
0
spaceinfo
 
Eurêka !

J'ai trouvé la solution en explorant ton histoire de DataTable.
En effet, j'ai désormais créée une DataTable que j'affecte à ma DataGrid avec un style de colonne : C'est Niquel !

Voici le code pour mieux comprendre :

Dim dt_table As Data.DataTable = New Data.DataTable("Paquets")
            dt_table.Columns.Add("EAN", GetType(String))
            dt_table.Columns.Add("Poids", GetType(String))
            dt_table.Columns.Add("Pièce", GetType(Integer))

            For i = 0 To i_nbpqt - 1
                dt_table.Rows.Add(tt900_pfl(i).cdean.Trim, FormatNumber(tt900_pfl(i).poids, 3), tt900_pfl(i).nbpi)
            Next

            Dim tableStyle As New DataGridTableStyle()
            Dim column As New DataGridTextBoxColumn()

            tableStyle.MappingName = "Paquets"
            
            ' EAN
            column = New DataGridTextBoxColumn()
            column.MappingName = "EAN"
            column.HeaderText = "EAN du Paquet"
            column.Width = 100
            tableStyle.GridColumnStyles.Add(column)

            ' Poids
            column = New DataGridTextBoxColumn()
            column.MappingName = "Poids"
            column.HeaderText = "Poids (en Kg)"
            column.Width = 80
            tableStyle.GridColumnStyles.Add(column)

            ' Pièce
            column = New DataGridTextBoxColumn()
            column.MappingName = "Pièce"
            column.HeaderText = "Pièce"
            column.Width = 46
            tableStyle.GridColumnStyles.Add(column)

            ' Ajouter le style à la datagrid
            c_dtg_pqt.TableStyles.Add(tableStyle)

            ' Affectation des données dans la DataGrid
            c_dtg_pqt.DataSource = dt_table


Un grand merci en tout cas pour ton intervention ;-)
Bonne journée.
0