我有DataGridView
DataSource
。我需要按字符串值过滤所有行。
E.g。
在DataGridView
中有3行:
Customer1.Text SomeValue
Customer1.State SomeState
Customer1.Name SomeName
我需要应用过滤器“.Text”我的DataGridView
只包含一行:
Customer1.Text SomeValue
我尝试使用代码:
var records = new BindingList<CRecord>
{
new CRecord("Customer1.Text", "SomeValue"),
new CRecord("Customer1.State", "SomeState"),
new CRecord("Customer1.Name", "SomeName"),
};
var recordsBindingSource = new BindingSource();
var records = new BindingList<CRecord> {
recordsBindingSource.DataSource = records;
dgvCustomers.DataSource = recordsBindingSource;
var bindingList = (BindingSource)currentDgv.DataSource;
bindingList.Filter = "ElementName like '%.Text%'";
但没有任何反应。我该如何进行过滤?
答案 0 :(得分:0)
你需要调整你的sql查询并用它重新绑定网格。
答案 1 :(得分:0)
BindingSource
还有一个名为Filter
的属性,用于过滤行数据,你只需使用它就可以不涉及任何BindingList:
recordsBindingSource.Filter = "ElementName like '%.Text%'";
答案 2 :(得分:0)
确认BindingSource
是否启用了属性SupportsFiltering
。如果没有,则无法按BindingSource
进行过滤,因为标记的字段已为ReadOnly。