Trier un datagridview sur plusieurs colonnes

jean67190 Messages postés 44 Date d'inscription lundi 25 février 2019 Statut Membre Dernière intervention 3 septembre 2020 - 25 févr. 2019 à 16:30
Whismeril Messages postés 19025 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 19 avril 2024 - 28 févr. 2019 à 12:08
Bonjour tout le monde,
J'essaye de trier un datagridview sur 2 colonnes mais j'ai beau chercher sur google, rien trouvé.
Mon datagrid n'est pas connecté à un datasource, juste un fichier texte que je charge.
Si quelqu'un trouve, super cool.
Jean

31 réponses

Whismeril Messages postés 19025 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 19 avril 2024 656
25 févr. 2019 à 18:19
Bonjour

Mon datagrid n'est pas connecté à un datasource,
c'est bien dommage ce serait nettement plus simple.

Il est de quel format ton fichier texte?
0
jean67190 Messages postés 44 Date d'inscription lundi 25 février 2019 Statut Membre Dernière intervention 3 septembre 2020
25 févr. 2019 à 18:49
1ere ligne texte = 1 cellule
2eme ligne text = 1 cellule
jusqu'à 5 lignes = 5 cellule...
Puis sépateur dans le fichier et je recommence.
Il est vrai qu'ensuite, je verrais pour une base de données, mais pour l'instant, pas mal de boulot dans le reste du pgm
0
Whismeril Messages postés 19025 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 19 avril 2024 656
25 févr. 2019 à 18:59
Tu peux poster un exemple avec des données représentatives et non confidentielles?
0
jean67190 Messages postés 44 Date d'inscription lundi 25 février 2019 Statut Membre Dernière intervention 3 septembre 2020
25 févr. 2019 à 19:09
{Objets Cachés}
25/02/2019
https://www.zonenet.ca/index.php?%2Fforums%2Ftopic%2F130693-mystery-trackers-raincliff-ec-2011objets-cach%C3%A9s%2F=
Mystery Trackers - Raincliff Edition Collector
Mystery Trackers - Raincliff Edition Collector (Objets cachés)
charly2011
-------------------------------------------------------------------------
{Objets Cachés}
25/02/2019
https://www.zonenet.ca/index.php?%2Fforums%2Ftopic%2F130691-mystery-trackers-les-quatre-as-ec-2013-objets-cach%C3%A9s%2F=
Mystery Trackers - Les Quatre As Edition Collector
Mystery Trackers - Les Quatre As Edition Collector (Objets cachés)
charly2011
-------------------------------------------------------------------------
{Gestion du temps}
17/01/2019
https://www.zonenet.ca/index.php?%2Fforums%2Ftopic%2F128317-heroes-of-hellas-4-birth-of-legend-deluxe-razz1303%2F=
Heroes of Hellas 4 - Birth of Legend Deluxe
Heroes of Hellas 4 - Birth of Legend Deluxe
eifeljane
-------------------------------------------------------------------------
{Objets cachés}
07/09/2018
https://www.zonenet.ca/index.php?%2Fforums%2Ftopic%2F120912-ghost-files-the-face-of-guilt-collectors-edition2018fr-freedom%2F=
Ghost Files - The Face of Guilt Edition Collector
Ghost Files - The Face of Guilt Edition Collector
monarch02
------------------------------------------------------------------------- ..................
La ligne de l'adresse internet tient sur une ligne normalement bien sur.
Dans ma grille, je veut trier sur le genre de jeux (ligne 1 qui est la colonne 3 dans la grille) et ensuite sur le nom du jeu (ligne 4 qui est la colonne 2 dans la grille)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Whismeril Messages postés 19025 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 19 avril 2024 656
26 févr. 2019 à 07:43
Ok, avec l’exemple je comprends.
Et bien tu peux écrire une classe qui a 5 propriétés.
Tu charges chaque jeux dans une List(of) que tu tries avec les méthodes OrderBy et ThenBy et ensuite tu bindes la liste triée au datagridview.
Je ne peux pas te montrer de code ce matin, je t’en posterai un dans l’après-midi ou la soirée.
0
jean67190 Messages postés 44 Date d'inscription lundi 25 février 2019 Statut Membre Dernière intervention 3 septembre 2020
26 févr. 2019 à 09:01
Merci chef, suis super content
0
jean67190 Messages postés 44 Date d'inscription lundi 25 février 2019 Statut Membre Dernière intervention 3 septembre 2020
26 févr. 2019 à 09:02
il est vrai que avec une db, et sql, c'est plus simple, mais pas encore fait
0
Whismeril Messages postés 19025 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 19 avril 2024 656
26 févr. 2019 à 09:27
Y’a ni db ni sql, que du .Net.
https://code.msdn.microsoft.com/101-LINQ-Samples-3fb9811b
Les exemples sont en C#, mais il y a de nombreux traducteurs en ligne.
0
jean67190 Messages postés 44 Date d'inscription lundi 25 février 2019 Statut Membre Dernière intervention 3 septembre 2020
26 févr. 2019 à 09:45
je vais regarder.
0
jean67190 Messages postés 44 Date d'inscription lundi 25 février 2019 Statut Membre Dernière intervention 3 septembre 2020
26 févr. 2019 à 14:06
Ou la la, j'ai pas tout compris leur exemples
0
Whismeril Messages postés 19025 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 19 avril 2024 656
26 févr. 2019 à 16:09
Je te poste un exemple ce soir

0
jean67190 Messages postés 44 Date d'inscription lundi 25 février 2019 Statut Membre Dernière intervention 3 septembre 2020
26 févr. 2019 à 16:10
Merci chef
0
Whismeril Messages postés 19025 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 19 avril 2024 656
26 févr. 2019 à 18:56
D'abord la classe Jeu
Imports System
Imports System.Collections.Generic

	Public Class Jeu
		Public Sub New(ByVal Lignes As List(Of String))
			Genre = Lignes(0).Replace("{", "").Replace("}", "")
			[Date] = Convert.ToDateTime(Lignes(1))
			Adresse = Lignes(2)
			Titre = Lignes(3)
			Titre2 = Lignes(4)
			Pseudo = Lignes(5)
		End Sub

		Public Property Genre() As String

		Public Property [Date]() As Date

		Public Property Adresse() As String

		Public Property Titre() As String

		Public Property Titre2() As String

		Public Property Pseudo() As String


	End Class


ensuite le chargement du fichier
			Dim fichier() As String = File.ReadAllLines("jeux.txt")'on charge toutes les lignes dans un tableau de string
			Dim lesJeux As New List(Of Jeu)()'initialisation de la liste

			For i As Integer = 0 To fichier.Length - 1 Step 7
				lesJeux.Add(New Jeu(fichier.Skip(i).Take(6).ToList()))
			Next i


Le tri avec une requête Linq
Dim jeuxTries As List(Of Jeu) = lesJeux.OrderBy(Function(j) j.Genre).ThenBy(Function(j) j.Titre).ToList()


Et le binding sur le datagridview
dataGridView1.DataSource = jeuxTries


En l'état les colonnes sont dans l'ordre d'écriture des propriétés dans la classe.
Pour changer l'ordre il suffit donc d'intervertir les déclarations dans la classe.
Pour personnaliser plus le binding, tu peux passer via un bindingSource, voir https://codes-sources.commentcamarche.net/faq/1291-utilisation-du-binding-au-travers-de-l-objet-databindingsource
0
jean67190 Messages postés 44 Date d'inscription lundi 25 février 2019 Statut Membre Dernière intervention 3 septembre 2020
26 févr. 2019 à 19:12
Ouah, t'as du de casser la tête, super, je vais tester. Pour l'instant, je met à jour visual studio 2017 pro, j'ai créé un db access, mais un pb ole.

Le fournisseur 'Microsoft.ACE.OLEDB.12.0' n'est pas inscrit sur l'ordinateur local

Bon en attendant, je vais faire ce que tu m'a donné, je vais pas faire une db pour un si petit fichier.
Je te tient au courant, grand merci
0
Whismeril Messages postés 19025 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 19 avril 2024 656
26 févr. 2019 à 21:19
Ouah, t'as du de casser la tête
en fait non, je l'ai écrit en C# (que je connais mieux), et l'ai passé au traducteur d'ou le [Date], j'avais pas fait attention.
J'y ai passé 15-20 minutes.
0
jean67190 Messages postés 44 Date d'inscription lundi 25 février 2019 Statut Membre Dernière intervention 3 septembre 2020
26 févr. 2019 à 21:29
Ben la, suis toujours dans la maj de visual studio. Je verrais demain et te dit.
Il faut que j'apprenne le C#.
0
Whismeril Messages postés 19025 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 19 avril 2024 656
26 févr. 2019 à 23:37
En fait VB.Net, est un faux ami de VBA ou VB6.
Il s'agit de C# déguisé en VB et avec quelques tolérances.

Voir ici
https://codes-sources.commentcamarche.net/faq/11151-pourquoi-mon-code-vb6-vba-ne-marche-pas-en-vb-net
0
jean67190 Messages postés 44 Date d'inscription lundi 25 février 2019 Statut Membre Dernière intervention 3 septembre 2020
26 févr. 2019 à 23:49
Je vais lire ça, intéressant. Mais pas cette nuit. Fatigué. A demain, bonne nuit
0
jean67190 Messages postés 44 Date d'inscription lundi 25 février 2019 Statut Membre Dernière intervention 3 septembre 2020
27 févr. 2019 à 17:54
Salut,
Je commence seulement. Bon j'ai petit pb, ça me créé des nouvelles colonnes dans ma grille à la suite de celles existante.
Je cherche, sinon ça marche à part mon pb de colonnes
0
Whismeril Messages postés 19025 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 19 avril 2024 656
27 févr. 2019 à 18:27
Ha oui, pour le binding, il faut un contrôle vierge.
0
Rejoignez-nous