过滤DataGridView
我在网上搜索了我的问题的解决方案,我和我的studygrp正在制作一个datagridview,它从classLibrary获取信息。 一切正常但现在我们必须过滤它,但我能找到的只是绑定源,但这不是我的想法。 我只想要一个简单的filter,以便您可以在文本框中输入内容,如果它包含该信息,则会在datagridview上显示它。 我试过了:
((DataTable)dataGridView1.DataSource).DefaultView.RowFilter = "FromColumn like '%" + textBox1.Text + "%'";
但它不起作用,我希望它能够…任何可以提供帮助的人?
试试BindingSource。 它提供了广泛的过滤function
BindingSource bs = new BindingSource(); bs.DataSource = dataGridView1.DataSource; bs.Filter = "yourColumnName like '%" + textBox1.Text + "%'"; dataGridView1.DataSource = bs;
试试这个:
DataView dv = ((DataTable)dataGridView1.DataSource).DefaultView; dv.RowFilter = "FromColumn like '%" + textBox1.Text + "%'"; dataGridView1.DataSource = dv;
我发现这最能满足我的需求:
您想要在网格中显示的数据存储在BindingList中(支持INotifyPropertyCchanged,当您更新列表时它非常整洁….)所以你定义这个BindingList:
public MyDataList = new BindingList();
将其分配给网格的数据源:
myDataGrid.DataSource = MyDataList;
当按下“filter按钮”或您想要做什么事件时:
myDataGrid.DataSource = MyDataList.Where(ln => ln.propertyname.Contains(textBoxFilter.Text).ToList();
重置filterm时只需设置原始源
MyDataGrid.DataSource = MyDataList
希望它有所帮助,问候