trier les dates dans un datagriview

Le
Michel Lemaitre
Bonjour,
Je charge un datagriview avec un fihier XML.
Le problème c'est que lorsque l'on clique sur l'en-tête de la colone, le
trie ascendant ou descendant ne se fait pas pour les colones qui
contiennent des dates ou des nombres. Ou plus exactement, le trie se
fait comme si la collonne contenait des textes.
Mon problème : comment faire pour que les données d'une colonne soient
reconnues comme des dates ou comme des chiffres?
Merci de votre aide.
Michel Lemaitre
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
Fred
Le #12244141
Dans : news:,
Michel Lemaitre écrivait :
Bonjour,



Bonsoir,

Je charge un datagriview avec un fihier XML.
Le problème c'est que lorsque l'on clique sur l'en-tête de la colone,
le trie ascendant ou descendant ne se fait pas pour les colones qui
contiennent des dates ou des nombres. Ou plus exactement, le trie se
fait comme si la collonne contenait des textes.
Mon problème : comment faire pour que les données d'une colonne soient
reconnues comme des dates ou comme des chiffres?



Chaque DataGridViewColumn possède une propriété ValueType.

--
Fred
http://www.cerber mail.com/?3kA6ftaCvT (enlever l'espace)
Michel Lemaitre
Le #12244131
Fred a écrit :
Dans : news:,
Michel Lemaitre écrivait :
Bonjour,



Bonsoir,

Je charge un datagriview avec un fihier XML.
Le problème c'est que lorsque l'on clique sur l'en-tête de la colone,
le trie ascendant ou descendant ne se fait pas pour les colones qui
contiennent des dates ou des nombres. Ou plus exactement, le trie se
fait comme si la collonne contenait des textes.
Mon problème : comment faire pour que les données d'une colonne soient
reconnues comme des dates ou comme des chiffres?



Chaque DataGridViewColumn possède une propriété ValueType.




Je sèche un peu sur la syntaxe:
dgvAffich.Columns(1).ValueType.?? DateTime
Fred
Le #12244121
Dans : news:,
Michel Lemaitre écrivait :


Je sèche un peu sur la syntaxe:
dgvAffich.Columns(1).ValueType.?? DateTime



dgvAffich.Columns(1).ValueType = GetType(DateTime)

--
Fred
http://www.cerber mail.com/?3kA6ftaCvT (enlever l'espace)
Michel Lemaitre
Le #12244111
>
dgvAffich.Columns(1).ValueType = GetType(DateTime)




Merci de votre aide mais le contenu de la collone est toujours trié
comme si c'était du texte :
01/01/2007
01/02/2007
01/03/2007
...
02/01/2007
02/02/2007
..
Je cherche à trier dans l'orde chronologique en cliquant sur l'en-tête
de la collonne.
Si vous pouvez quelque chose pour moi...
Merci
Fred
Le #12244101
Dans : news:%,
Michel Lemaitre écrivait :
dgvAffich.Columns(1).ValueType = GetType(DateTime)




Merci de votre aide mais le contenu de la collone est toujours trié
comme si c'était du texte :



Il y a sans doute interférence avec la définition du fichier xml. De
quelle manière précise se fait le remplissage du DataGridView ?
Pouvez-vous tester avec un exemple minimal dont vous copiez le code ici
(ou en zippant le projet et en le joignant au post) ?
Dans le cas d'un DataGridView non lié, le fait de spécifier le type de
colonne produit bien l'effet escompté, avec, en prime, une vérification
des données saisies.
Dans le cas d'une liaison avec une DataTable, les colonnes sont
également correctement typées en fonction des DataColumns.


--
Fred
http://www.cerber mail.com/?3kA6ftaCvT (enlever l'espace)
Michel Lemaitre
Le #12244071
Merci de votre patience
voici un projet a minima avec un datagridview rempli manuellement sur
une form :

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Load
Dim I As Integer
Dim JourAn As Date = Date.Parse("01/01/2007")
With dgvAffich
.Rows.Clear()
.Columns.Add(0, "Num Jour") '"Prénom"
.Columns.Add(1, "Date") '"Date"
For I = 0 To 365

.Rows.Add(New Object() {I,
JourAn.AddDays(I).ToLongDateString})
Next
.Columns(1).ValueType = GetType(DateAndTime)
End With
End Sub

J'ai le même soucis avec mon fichier XML qui est lu sans faire appel au XSD.
Si vous pouvez m'aider..
Michel Lemaitre
Gilles TOURREAU
Le #12244051
Le Sat, 18 Aug 2007 18:32:44 +0200, Michel Lemaitre

Merci de votre patience
voici un projet a minima avec un datagridview rempli manuellement sur
une form :

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Load
Dim I As Integer
Dim JourAn As Date = Date.Parse("01/01/2007")
With dgvAffich
.Rows.Clear()
.Columns.Add(0, "Num Jour") '"Prénom"
.Columns.Add(1, "Date") '"Date"
For I = 0 To 365

.Rows.Add(New Object() {I,
JourAn.AddDays(I).ToLongDateString})
Next
.Columns(1).ValueType = GetType(DateAndTime)
End With
End Sub

J'ai le même soucis avec mon fichier XML qui est lu sans faire appel au
XSD.
Si vous pouvez m'aider..
Michel Lemaitre



C'est normal, vous ajoutez des chaînes de caractères dans les colonnes, il
faut mettre dans votre cas des valeur de type DateTime :

.Rows.Add(New Object() {I, JourAn.AddDays(I) })

Cordialement

--
Gilles TOURREAU


S.A.R.L. P.O.S
Le spécialiste en motoculture depuis + de 30 ans !
http://www.pos.fr
Publicité
Poster une réponse
Anonyme