Фильтруем строки в DataGridview с помощью текстового поля в C#

В этом примере я покажу вам, как фильтровать DataGridView с текстом, введенным в текстовое поле.

Создайте новое приложение Windows. Добавьте элемент управления DataGridView и textbox.

Загрузите данные из DataTable. (Form_Load)

DataTable table;
 
private void Form1_Load(object sender, EventArgs e)
        {
            table = new DataTable();
 
            table.Columns.Add("Id", typeof(int));
            table.Columns.Add("FirstName", typeof(string));
            table.Columns.Add("LastName", typeof(string));
            table.Columns.Add("City", typeof(string));
 
            table.Rows.Add(1, "Leon", "Ardon", "Paris");
            table.Rows.Add(2, "Ben", "Jamir", "London");
            table.Rows.Add(3, "Samuel", "Toe", "Berlin");
            table.Rows.Add(4, "Lila", "Foe", "Madrid");
 
            dataGridView1.DataSource = table;
        }

Теперь в свойстве text_changed текстового поля добавьте следующий код. Здесь я фильтрую его по столбцу » FirstName

private void txtSearch_TextChanged(object sender, EventArgs e)
        {
            DataView dv = table.DefaultView;
            dv.RowFilter = "FirstName LIKE '" + txtSearch.Text + "%'";
            dataGridView1.DataSource = dv;
        }
Обновлено: 04.01.2020 — 22:20

2 комментария

Оставить комментарий
  1. Получилось с некоторыми изменениями на с++. В идеале найти бы хороший пример как делать фильтрацию по типу экселевской — с выпадающим комбобоксом на хэдере и с чекбоксами. На шарпах есть библиотека DataGridViewAutoFilter, но на c++ не заводится.

    1. В чем сложность написать запросы с жесткой привязкой к контролам и выбирать их их выпадающего списка или работать в дальнейшем с чекбоксами?

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.