Yavion
2010-01-15, 10:06:32
Moin!
ich benutze ein DataGridView (.NET, Forms) um Tabellen darzustellen.
Folgendes Problem habe ich dabei:
1. Die Tabellen sind sehr groß (10 Spalten, gerne mal 100000 Zeilen).
2. Die Zeilen sollte man iwie sortieren können. Am besten durch Klick auf den Spaltenheader.
3. Die Daten liegen nicht in einer Datenbank vor, sondern wurden aus Textdateien ausgelesen.
Mein erster Versuch war ein unbound DataGridView, in dem einfach Reihenweise die Daten eingepflegt wurden. Schöne Sache nur leider zu langsam: Das Füllen geht noch aber sortieren und enfernen von Zeilen ist unbrauchbar langsam.
Mein zweiter Versuch war es, das DataGridView im VirtualMode zu betreiben, wobei das Grid seine Infos aus einem DataTable via form.dataGridView1.CellValueNeeded Handler bekommt.
Seeehr schnell aber leider: Keine Sortierung möglich und auch sonst nichts: Kein vertauschen von Spalten etc. Ich müsste diese Funktionen also iwie selbst implementieren und frage mich, ob das den Aufwand wert ist, wenn am Ende das sortieren auf dem DataTable (oder DataView) ebenso lange dauert.
Hat jemand Erfahrung mit sowas und kann mir da eine "best practice" nennen?
ich benutze ein DataGridView (.NET, Forms) um Tabellen darzustellen.
Folgendes Problem habe ich dabei:
1. Die Tabellen sind sehr groß (10 Spalten, gerne mal 100000 Zeilen).
2. Die Zeilen sollte man iwie sortieren können. Am besten durch Klick auf den Spaltenheader.
3. Die Daten liegen nicht in einer Datenbank vor, sondern wurden aus Textdateien ausgelesen.
Mein erster Versuch war ein unbound DataGridView, in dem einfach Reihenweise die Daten eingepflegt wurden. Schöne Sache nur leider zu langsam: Das Füllen geht noch aber sortieren und enfernen von Zeilen ist unbrauchbar langsam.
Mein zweiter Versuch war es, das DataGridView im VirtualMode zu betreiben, wobei das Grid seine Infos aus einem DataTable via form.dataGridView1.CellValueNeeded Handler bekommt.
Seeehr schnell aber leider: Keine Sortierung möglich und auch sonst nichts: Kein vertauschen von Spalten etc. Ich müsste diese Funktionen also iwie selbst implementieren und frage mich, ob das den Aufwand wert ist, wenn am Ende das sortieren auf dem DataTable (oder DataView) ebenso lange dauert.
Hat jemand Erfahrung mit sowas und kann mir da eine "best practice" nennen?