Filter im DGV

25/05/2008 - 10:54 von Hans Wagner | Report spam
Hallo,
ich sitze schon lànger vor folgenden Problem:
Ich einem DGV, dies ist an ein DS gebunden habe ich ein
DataGridViewComboBoxColumn integriert.
In der ComboBox zeige ich nur eine Auswahl der Fzg-Typen an. In der
gebundenen Tabelle ist die dazugehörige ID enthalten.

Nun möchte ich gerne den Inhalt des DGVs filtern.
Hierzu benutze ich folgenden Code:
mDV.RowFilter = mDV.Sort & " LIKE '" & "%" & TextBox1.Text & "%'"
DGV.DataSource = mDV

Dies funktionert auch in den normalen Spalten. Wenn ich nun die
Filterung an der Spalte mit der ComboBox vorhnehme, erhalte ich kein
Ergebnis, da die Filterung über die ID erfolgt (diese ist ja im DS
enthalten).

Wie kann ich nun erreichen dass ich für die Filterung den angezeigten
Fzg-Typ benutzen kann. Dieser wird ja nur für die ComboBox Auswahl und
Anzeige verwendet?

Danke für die Hilfe
Hans
 

Lesen sie die antworten

#1 Peter Fleischer
25/05/2008 - 11:24 | Warnen spam
"Hans Wagner" schrieb im Newsbeitrag
news:%

Ich einem DGV, dies ist an ein DS gebunden habe ich ein
DataGridViewComboBoxColumn integriert.
In der ComboBox zeige ich nur eine Auswahl der Fzg-Typen an. In der
gebundenen Tabelle ist die dazugehörige ID enthalten.

Nun möchte ich gerne den Inhalt des DGVs filtern.
Hierzu benutze ich folgenden Code:
mDV.RowFilter = mDV.Sort & " LIKE '" & "%" & TextBox1.Text & "%'"
DGV.DataSource = mDV

Dies funktionert auch in den normalen Spalten. Wenn ich nun die Filterung
an der Spalte mit der ComboBox vorhnehme, erhalte ich kein Ergebnis, da
die Filterung über die ID erfolgt (diese ist ja im DS enthalten).

Wie kann ich nun erreichen dass ich für die Filterung den angezeigten
Fzg-Typ benutzen kann. Dieser wird ja nur für die ComboBox Auswahl und
Anzeige verwendet?



Hi Hans,
es gibt da 2 Lösungswege. Zur Begriffsbestimmung: die Master-Tabelle enthàlt
den Langtext (Fzg-Typ) mit der ID und die Child-Tabelle enthàlt die Daten
mit der Fremdschlüsselspalte, die mit der ID der Mastertabelle in beziehung
steht.

1. Für den gesuchten Langtext (der an die ComboBox-Spalte gebundenen Liste)
aus der Mastertabelle wird die dazugehörige ID ermittelt und danach die
Sicht auf die Child-Tabelle gefiltert. Nachteilig bei dieser Variante ist,
wenn nach mehreren Eintràgen in der Mastertabelle zu filtern ist (Suche mit
LIKE im Langtext der Master-Tabelle) und durch ein langes Filterkriterium
für die Sicht auf die Child-Tabelle zu erstellen ist.

2. Wenn direkt mit dem Langtext gefiltert werden soll, dann kann man die
Master- Und Child-Tabellen in einem DataSet mit DataRelation verwalten und
der Child-Tabelle eine Expression-Spalte hinzufüge, in der für jeden
Datensatz der Langtext aus dem entsprechenden Master-Datensatz steht. Danach
kann man dann direkt filtern.

Falls dir da noch etwas unklar ist, melde dich nochmals.

Viele Grüsse
Peter

Ähnliche fragen