DateGridView - Double affichage des colonnes ??

Le
Paraglider
Bonjour tout le monde,

J'utilise un datagridview qui est alimenter par le code :
'créer adaptateur
Dim data_Adapter As New OleDbDataAdapter("Select * FROM
MA_TABLE", ObjetConnection)

'Mapper la table clients
data_Adapter.TableMappings.Add("Table", "MA_TABLE")

'remplir le dataset
utilisateur_DataSet = New DataSet
data_Adapter.Fill(utilisateur_DataSet)

'lier le contrôle à la table
Me.DataUtilisateurs.DataSource = utilisateur_DataSet
Me.DataUtilisateurs.DataMember = "MA_TABLE"

De ce côté aucun problème. Par contre, j'ai utilisé la propriét=
é
Columns(Collection) pour donner une nom de colonne "lisible". Le
problème est que le datagrid affiche mes colonnes vides plus les
colonnes de la table avec comme entête de colonne le nom du champ !
Comment dois-je faire pour afficher mes données avec un entête de
colonne que je défini moi-même ??


Merci de vos réponses

Jacques
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Jérémy Jeanson
Le #21221581
Bonjour Jacques,

En fait ton code approche semble présenter deux erreurs courante :

1) Tu as laissé la propriété AutoGenerateColumns sur sa valeur par
défaut qui est True . Donc tu as tes colonnes + celles qui sont
générés automatiquement.
Il faut passer donc ajouter la ligne suivante à ton code
Me.DataUtilisateurs.AutoGenerateColumns = False

2) Tu t'es certainement trompé de propriété en créant tes colonnes
(inversion entre la valeur à binder et le titre de la colonne?)

Si tu ne veux pas changer l'ordre de tes colonnes, tu peux très bien
laiser AutoGenerateColumns sur true et parcouri la collection de
colonens autogénérées pour ne changer que leur entête...

à toi de voir ce qui te conviens.

---
Jérémy JEANSON
MCP
http://blogs.codes-sources.com/jeremyjeanson/
Paraglider
Le #21223861
On 18 fév, 02:28, Jérémy Jeanson
Bonjour Jacques,

En fait ton code approche semble présenter deux erreurs courante :

1) Tu as laissé la propriété AutoGenerateColumns sur sa valeur par
défaut qui est True . Donc tu as tes colonnes + celles qui sont
générés automatiquement.
Il faut passer donc ajouter la ligne suivante à ton code
 Me.DataUtilisateurs.AutoGenerateColumns = False

2) Tu t'es certainement trompé de propriété en créant tes colonne s
(inversion entre la valeur à binder et le titre de la colonne?)

Si tu ne veux pas changer l'ordre de tes colonnes, tu peux très bien
laiser AutoGenerateColumns  sur true et parcouri la collection de
colonens autogénérées pour ne changer que leur entête...

à toi de voir ce qui te conviens.

---
Jérémy JEANSON
MCPhttp://blogs.codes-sources.com/jeremyjeanson/



Bonjour Jerémy


J'ai essayé Me.DataUtilisateurs.AutoGenerateColumns = False et
effectivement dans ce cas il n'y a que mes colonnes qui apparaissent
mais pas les valeurs !?


Jacques
Jérémy Jeanson
Le #21223981
Bonjours Jacques,

Peux tu nous indiquer le code utilisé pour créer tes colonnes?

---
Jérémy JEANSON
MCP
http://blogs.codes-sources.com/jeremyjeanson/
Paraglider
Le #21224081
On 18 fév, 09:22, Jérémy Jeanson
Bonjours Jacques,

Peux tu nous indiquer le code utilisé pour créer tes colonnes?

---
Jérémy JEANSON
MCPhttp://blogs.codes-sources.com/jeremyjeanson/



Hello Jérémy,

Je n'ai pas de code qui crée les colonnes :-)
J'ai résolu le problème autrement ... je ne sais pas si c'est une
bonne façcon de faire ! Dans mon Selec j'ai défini le nom des champ NM
as Nom ,etc.
J'ai donc un affichage correcte du libéllé des colonnes. Voici le code
complet :
'créer adaptateur
Dim data_Adapter As New OleDbDataAdapter("Select ID_PERS, NM
as Nom, PRM as [Prénom], NIVEAU as Niveau FROM tbl_PERS",
ObjetConnection)

'Mapper la table clients
data_Adapter.TableMappings.Add("Table", "tbl_Pass")

'remplir le dataset
utilisateur_DataSet = New DataSet
data_Adapter.Fill(utilisateur_DataSet)

'lier et 'configurer le datagridview
With Me.DataUtilisateurs
Me.DataUtilisateurs.AutoGenerateColumns = True

Me.DataUtilisateurs.DataSource = utilisateur_DataSet
Me.DataUtilisateurs.DataMember = "tbl_Pass"


For columnIndex As Integer = 0 To (.ColumnCount - 1)
If columnIndex = 0 Then
.Columns(columnIndex).Visible = False 'colonne
contenant l'index
Else
.Columns(columnIndex).AutoSizeMode =
DataGridViewAutoSizeColumnMode.Fill
End If

Next

End With

Si tu as des remarques sur mon code, n'hésite pas !! :-)

Merci

Jacques
Publicité
Poster une réponse
Anonyme