簡體   English   中英

C#將多個過濾器應用於datagridview

[英]C# apply more than one filter to datagridview

我有用戶輸入的過濾器列表,我想將其應用到DataGridView 將所有過濾器應用於DataGridView的最佳方法是什么? 我的ColumnFilters列表基本上是一個字符串列表,這些字符串分為: Column name, operand (=, >, < etc.)和用戶輸入的值。

public void ApplyFilters(List<ColumnFilter> filters)
{
    if (filters.Count > 0))
    {
        foreach (ColumnFilter filter in filters)
        {
            BindingSource bs = (BindingSource)dataGridView1.DataSource; 
            bs.Filter = string.Format("{0} {1} '{2}'", filter.ColumnName, filter.Operand, filter.Value);
            dataGridView1.DataSource = bs;
        }
     }
}

bindingsource Filter支持AND ,因此可以將過濾器與以下內容結合使用:

bs.Filter  = string.Join(" AND ", filters.Select(filter=>string.Format("{0} {1} '{2}'", filter.ColumnName, filter.Operand, filter.Value).ToArray());

(注意:使用上述方法時不需要foreach)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM