Фильтр DataGridView по всем столбцам - PullRequest
2 голосов
/ 04 мая 2020

Простите за мой плохой английский sh. Я старый немец, хочу отфильтровать DGV по всем столбцам. В данный момент я использую следующий фильтр:

Dim Such_Spalte = Me.DtS_DGV.DTT_1.article_1Column.ColumnName

Но у меня есть 10 столбцов (от article_1 до Article_10)

Если, например, сахар находится в столбце 1,3,5, я хочу увидеть все записи, где встречается сахар.

Надеюсь, это понятно

1 Ответ

2 голосов
/ 04 мая 2020

Кажется, вы используете строго типизированные наборы данных, и поэтому я ожидал, что ваш datagridview привязан через BindingSource (дизайнер форм windows настраивает его таким образом, и я предполагаю, что вы использовали конструктор te для выполнения своих задач. привязка)

Если ваш datagridview действительно привязан через источник привязки:

Dim bs = DirectCast(datagridviewX.DataSource, BindingSource)

Dim sb = New StringBuilder() 'it will hold the filter string

For Each col in DtS_DGV.DTT_1.Columns
  sb.AppendFormat("[{0}] = '{1}' OR ", col.ColumnName, "Sugar")
Next col

sb.Length -= 3 'remove the trailing OR

bs.Filter = sb.ToString()

Если ваш datagridview напрямую привязан к таблице, он будет прикреплен к свойству таблицы DefaultView, DataView, в котором также есть фильтр, который работает таким же образом. В этом случае сделайте то же самое с l oop, чтобы построить строку фильтра, а затем:

DtS_DGV.DTT_1.DefaultView.Filter = sb.ToString()
...