Trier les colonnes dataGridView en C#? (Windows Form)
j'ai un datagridview que je lie à partir d'une table sql, dans ce dv j'ai ces attributs: Id, Name et Price. Quand je mets le mode D'écriture des colonnes de noms à automatique et que je clique sur l'en-tête de cette colonne, je peux trier ce dv en fonction de la première lettre du nom, de cette façon je peux commander des produits en fonction de leurs premières lettres ( Acumulator, Boat, CocaCola, Engine etc).
y a-t-il un moyen pour que cela se produise sans cliquer sur l'en-tête du nom de la colonne. Je suis à la recherche de quelques code qui fera ce travail quand le formulaire se chargera.
5 réponses
Il y a une méthode dans DataGridView appelée "Sort":
this.dataGridView1.Sort(this.dataGridView1.Columns["Name"], ListSortDirection.Ascending);
cela va programmatiquement trier votre datagridview.
dataGridView1.Sort(dataGridView1.Columns[0],ListSortDirection.Ascending);
Vous pouvez contrôler les données retournées de la base de données SQL en ordonnant les données retournées:
orderby [Name]
si vous exécutez la requête SQL depuis votre application, Commandez les données retournées. Par exemple, faites une fonction qui appelle la procédure ou exécute le SQL et donnez-lui un paramètre qui obtient les critères orderby. Parce que si vous avez commandé les données retournées à partir de la base de données, cela va prendre du temps mais ordonnez-le puisqu'il est exécuté comme vous dites que vous voulez qu'il soit commandé pas à partir de L'UI vous voulez qu'il soit ordonné dans le temps de le commander lors de l'exécution de la requête SQL.
celui-ci est plus simple :)
dataview dataview1;
this.dataview1= dataset.tables[0].defaultview;
this.dataview1.sort = "[ColumnName] ASC, [ColumnName] DESC";
this.datagridview.datasource = dataview1;
Utiliser Datatable.Default.Sort
propriété et ensuite la lier à la vue de données.