VB.NET- Affecter style de colonne à DataGrig

Résolu/Fermé
spaceinfo - 18 août 2011 à 18:09
 spaceinfo - 19 août 2011 à 10:52
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.

4 réponses

Nico# Messages postés 323 Date d'inscription vendredi 4 janvier 2008 Statut Membre Dernière intervention 28 août 2013 102
18 août 2011 à 22:34
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 vendredi 4 janvier 2008 Statut Membre Dernière intervention 28 août 2013 102
18 août 2011 à 23:09
Après mure réflexion ( plutot une grande tasse de café :) ) regarde si le mappingname correspond bien au tablename de ton datatable
0
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
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