cs_JMO
Messages postés1854Date d'inscriptionjeudi 23 mai 2002StatutMembreDernière intervention24 juin 2018
-
28 juin 2015 à 12:06
Whismeril
Messages postés18416Date d'inscriptionmardi 11 mars 2003StatutContributeurDernière intervention 1 juin 2023
-
28 juin 2015 à 22:08
Bonjour le Forum,
Ceci est très certainement une question récurrente.
Pour charger un DataGridView
Dim mesJobs As List(Of JOB) = ( From k In maListe, a In k.Applications, j In a.Jobs Select j.AffecteParent(a, k)).ToList()
Je souhaiterai faire un tri sur mes 3 premières colonnes.
Si impossible, je peux créer une colonne en première position qui sera la contaténation de mes 3 colonnes.
En relisant mes précédents posts concernant l'extraction de données à partir d'un fichier xml (http://codes-sources.commentcamarche.net/forum/affich-10051169-linq-extraction-fichier-xml), il apparait que je dois d'abord trier mes données avant de les afficher dans le DataGridView.
De même, je pensais qu'un tri par l'utilisateur était possible.
Dans mon cas actuel, le tri de colonne est inactif malgré le AllowUserToOrderColumns à True.
Bonjour le fait de binder une source de données à un contrôle, entraine que ce contrôle devient l'image de cette source donc:
1 effectivement le plus simple est de trier la source
'liste de Jobs, avec les parents affectés
Dim mesJobs As List(Of Job) = (
From e In maListe, a In e.Applications, j In a.Jobs
Select j.AffecteParent(a, e)).OrderBy(Function(j) j.Name).ThenBy(Function(j) j.ParamAffiches).ToList()'champs de tri pris au hasard pour l'exemple
2 si tu veux afficher une concaténation de colonnes, il faut créer une propriété dans ton job qui le fait, mais tu vas me dire que tu vas avoir tes données en double, à cela je te réponds par ce lien (que je t'ai déjà donné, mais vu le flot d'infos que tu as eu ces derniers jours, je ne sui pas surpris que tu en aies raté un peu)
Modérer m'amène à intervenir dans de nombreux posts, mais les seuls langages que je connaisses sont le C# et un peu de VB. Pour vos codes pensez à la coloration.
Réponse trouvée ->Question Résolue
cs_JMO
Messages postés1854Date d'inscriptionjeudi 23 mai 2002StatutMembreDernière intervention24 juin 201826 28 juin 2015 à 19:10
Bonjour Whismeril,
J'ai donc suivi tes conseils :
- ajout du champ EnvAppJob;
- modification de la requête;
Dim mesJobs As List(Of JOB) = ( From k In maListe, a In k.Applications, j In a.Jobs Select j.AffecteParent(a, k)).OrderBy(Function(j) j.EnvAppJob).ToList()
Me.DataGridView1.DataSource = mesJobs
- Modification du DataGridView, ajout JOBBindingSource et suppression de la colonne EnvAppJob.
Le DataGridView est correctement trié (+ gain de temps pour le load).
Merci et bonne soirée,
Prochaine étape : chargement de ComboBoxes à partir du Binding.
jean-marc
Whismeril
Messages postés18416Date d'inscriptionmardi 11 mars 2003StatutContributeurDernière intervention 1 juin 2023624 28 juin 2015 à 21:10