Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

trier les dates dans un datagriview

7 réponses
Avatar
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

7 réponses

Avatar
Fred
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)
Avatar
Michel Lemaitre
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
Avatar
Fred
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)
Avatar
Michel Lemaitre
>
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
Avatar
Fred
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)
Avatar
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
Avatar
Gilles TOURREAU
Le Sat, 18 Aug 2007 18:32:44 +0200, Michel Lemaitre
a écrit:

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