Question

J'ai un datagridview que je lie à partir d'une table SQL, en ce que j'ai dv ces attributs: Id, Nom et Prix. Lorsque je règle le SortMode des colonnes de nom sur Automatique et que je clique sur l'en-tête de cette colonne, je peux trier ce DVD en fonction de la première lettre du nom. Ainsi, je peux commander des produits en fonction de leurs premières lettres (Acumulator, Boat, CocaCola, moteur etc).

Est-il possible que cela se produise sans cliquer sur l'en-tête de la colonne Nom. Je cherche un code qui fera ce travail lorsque le formulaire sera chargé.

Était-ce utile?

La solution

Il existe une méthode sur le DataGridView appelée "Trier":

this.dataGridView1.Sort(this.dataGridView1.Columns["Name"], ListSortDirection.Ascending);

Ceci va trier par programme votre datagridview.

Autres conseils

dataGridView1.Sort(dataGridView1.Columns[0],ListSortDirection.Ascending);

Vous pouvez contrôler les données renvoyées par la base de données SQL en les ordonnant:

orderby [Name]

Si vous exécutez la requête SQL à partir de votre application, triez les données renvoyées. Par exemple, créez une fonction qui appelle la procédure ou exécute le code SQL et attribuez-lui un paramètre qui récupère les critères orderby. Parce que si vous avez commandé les données renvoyées à partir de la base de données, elles consommeront beaucoup de temps, mais commandez-les, car elles sont exécutées car vous dites que vous souhaitez qu'elles ne soient pas commandées à partir de l'interface utilisateur, vous souhaitez que ces données soient commandées au moment de l'exécution. requête.

Celui-ci est plus simple :))

dataview dataview1; 
this.dataview1= dataset.tables[0].defaultview;
this.dataview1.sort = "[ColumnName] ASC, [ColumnName] DESC";
this.datagridview.datasource = dataview1;

Utilisez la propriété Datatable.Default.Sort , puis liez-la à la vue datagridview.

La meilleure solution consiste à trier la liste avant de lier la source de données.

cars = cars.OrderBy (o = > o. year) .ThenBy (o = > o.color) .ToList (); adgCars.DataSource = cars;

Désolé pour mon mauvais anglais.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top