Rubrik: Controls · DataGrid & DataGridView | VB-Versionen: VB.NET | 09.01.08 |
Datagridview-Spalten richtig sortieren (VB.NET) Wenn man unter VB.NET Daten in das Datagridview schreibt, dann wird ein Datum leider nicht automatisch erkannt, sondern als String sortiert. | ||
Autor: Maximilian Osenberg | Bewertung: | Views: 36.211 |
www.speedsoft-developing.de | System: WinNT, Win2k, WinXP, Win7, Win8, Win10, Win11 | Beispielprojekt auf CD |
Klar - zum Anzeigen von Daten verwendet man i.a.R. das DataGridView. Das Problem beginnt aber dann, wenn man Spalten z.B. mit Datumswerten hat und diese sortieren möchte. Diese werden leider nicht automatisch erkannt, sondern als String sortiert.
Nachfolgender Code schafft Abhilfe, indem der Spaltentyp (ValueType) explizit auf den benötigten Datentyp festgelegt wird.
' DataGridView - Spalten festlegen With DataGridView1.Columns .Add("id", "ID") .Add("name", "Name") .Add("date", "Datum") .Add("age", "Alter") End With ' Spalten-Eigenschaften With DataGridView1 .Columns(0).Width = 50 .Columns(0).ValueType = GetType(Integer) .Columns(1).AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill .Columns(2).ValueType = GetType(Date) .Columns(3).Width = 50 .Columns(3).ValueType = GetType(Integer) End With ' DataGridView mit ein paar Werten füllen With DataGridView1.Rows .Add(1, "Max Mustermann", CDate("19.04.1972"), 35) .Add(2, "Heinz Schmitt", CDate("22.02.1953"), 54) .Add(3, "Dieter Otter", CDate("05.05.1973"), 34) .Add(4, "Max Schmitt", CDate("19.11.1948"), 59) .Add(5, "Hans Meier", CDate("13.04.1975"), 32) End With
Leider kann man ValueType nur per Code setzen. Diesem Property weist man dann bspw. den Typ "Date" zu. Statt "Date" kann man natürlich auch andere Typen, die man richtig sortieren möchte, übergeben. Beim Hinzufügen von Zeilen muss man dann darauf achten, bei der entsprechenden Spalte keinen String sondern den entsprechenden Typ zu übergeben.