В этом примере я покажу вам, как фильтровать 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;
}
Получилось с некоторыми изменениями на с++. В идеале найти бы хороший пример как делать фильтрацию по типу экселевской — с выпадающим комбобоксом на хэдере и с чекбоксами. На шарпах есть библиотека DataGridViewAutoFilter, но на c++ не заводится.
В чем сложность написать запросы с жесткой привязкой к контролам и выбирать их их выпадающего списка или работать в дальнейшем с чекбоксами?