如何通过Substring过滤DataGridView?

时间:2013-12-05 11:12:30

标签: c# winforms data-binding datagridview

我有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%'";

但没有任何反应。我该如何进行过滤?

3 个答案:

答案 0 :(得分:0)

你需要调整你的sql查询并用它重新绑定网格。

答案 1 :(得分:0)

BindingSource还有一个名为Filter的属性,用于过滤行数据,你只需使用它就可以不涉及任何BindingList:

recordsBindingSource.Filter = "ElementName like '%.Text%'";

答案 2 :(得分:0)

确认BindingSource是否启用了属性SupportsFiltering。如果没有,则无法按BindingSource进行过滤,因为标记的字段已为ReadOnly。