Entwickler-Ecke

WinForms - DataGridView Zeilen filtern und auch ausblenden


syntec - Do 15.09.11 20:45
Titel: DataGridView Zeilen filtern und auch ausblenden
Hallo an alle,

ich bastle gerade an einen DataGridView herum, dessen Source ein DataView ist.
Mit Hilfe der gegeben RowFilerfunktion, die DataView mit sich bringt, lasse ich die Zeilen entsprechen ihren Inhalts darstellen. Nun möchte ich aber den Nutzer die Funktion geben, nicht nur die gewünschten Zeilen anzeigen zu lassen, sondern auch ausblenden zu können. Quasi eine negierte RowFilterfunktion.
Aber auch mit Google´s Hilfe konnte ich keinen Ansatz finden. Nun hoffe ich, dass ihr mir vielleicht hierzu etwas weiterhelfen könntet.

Notgedrungen, müsste ich dann den entsprechen Zelleninhalt mit Hilfe einer for-Schleide auslese, abfragen und dann den Visible-Parameter auf false setzen.

Danke,


mats74 - Fr 16.09.11 07:15

Hallo syntec

user profile iconsyntec hat folgendes geschrieben Zum zitierten Posting springen:
Notgedrungen, müsste ich dann den entsprechen Zelleninhalt mit Hilfe einer for-Schleide auslese, abfragen und dann den Visible-Parameter auf false setzen.


Ich weiss nicht, was daran notgedrungen sein soll.
Du hast Dir die Lösung selber aufgeschrieben.
Die Visible-Eigenschaft ist für diesen Einsatz ja eigentlich genau das richtige.
Ich habe schon öfters die Dgv-Zeilen mit Hilfe der Visible-Eigenschaft ein- und ausgeblendet.

Gruss
mats74


Th69 - Fr 16.09.11 09:42

Hallo syntec,

die genaue Syntax von RowFilter-Ausdrücken findest du in der MSDN unter DataColumn.Expression [http://msdn.microsoft.com/de-de/library/system.data.datacolumn.expression%28v=vs.80%29.aspx].

Du kannst also auch <> oder NOT verwenden, z.B.

C#-Quelltext
1:
2:
3:
dataView.RowFilter = "spalte <> 'text'";
// oder
dataView.RowFilter = "NOT (spalte = 'text'");


mats74 - Fr 16.09.11 10:12

Hallo Th69

Diese Möglichkeit der RowFilter-Syntax habe ich bis jetzt noch nicht verwendet, funktioniert aber Bestens.
Da muss ich wohl mein bisheriges Auswahlverfahren revidieren :( .
Wieder mal was dazugelernt.

Gruss
mats74


syntec - Sa 17.09.11 21:23

Hallo und vielen Dank für eure Antworten.

Das hat mir sehr geholfen.
Nun kann ich mit

Quelltext
1:
2:
string text = "_text_";
dataView.RowFilter = "NOT spalte LIKE '*" + text + "*'";

es so umsetzen, wie ich es mir gewünscht habe.

Danke nochmal