Frage

Ich habe eine Datagridview, die ich aus einer SQL-Tabelle binden, dass dv ich habe diese Attribute: ID, Name und Preis. Wenn ich die SortMode des Namens Spalten auf Automatisch gesetzt und i auf der Kopfzeile dieser Spalte klicken ich dieses dv basierend auf dem ersten Buchstaben des Namens sortieren kann, auf diese Weise i-Produkte auf der Grundlage ihrer ersten Buchstaben bestellen können (Acumulator, Boot, Coca Cola, Motor usw.).

Gibt es eine Möglichkeit, diese Sache ohne Klick auf die Überschrift der Spalte Name passieren. Ich suche einen Code, um diesen Job tun wird, wenn das Formular geladen wird.

War es hilfreich?

Lösung

Es gibt eine Methode auf dem Datagridview genannt „Sortieren“:

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

Dies wird programmatisch sortieren Sie Ihre Datagridview.

Andere Tipps

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

Sie können die Daten steuern von SQL-Datenbank zurückgegeben, indem die Daten der Bestellung zurückgegeben:

orderby [Name]

Wenn Sie die SQL-Abfrage aus Ihrer Anwendung ausführen, die zurückgegebenen Daten bestellen. Zum Beispiel machen eine Funktion, die das Verfahren oder führt die SQL-Aufrufe und geben ihm einen Parameter, der die orderby Kriterien bekommt. Denn wenn man die Daten bestellt von der Datenbank zurückgegeben wird es Zeit, sondern um sie konsumieren, da es ausgeführt ist, wie Sie sagen, dass Sie es nicht von der Benutzeroberfläche bestellt werden mögen, dass Sie es wollen in der Laufzeit bestellt wird so um sie bei der Ausführung der SQL Abfrage.

Dies ist einfacher:)

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

Datatable.Default.Sort Eigenschaft verwenden und binden sie dann an die Datagridview.

Der beste Weg, dies zu tun ist, um die Liste zu sortieren, bevor Datenquelle binden.

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

Sorry für mein schlechtes Englisch.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top