【发布时间】:2016-01-18 08:52:04
【问题描述】:
所以我有一个包含许多列的 datagridview,其中两个是“状态”和“分配给”。我有两个字段,用户应该能够根据输入的内容过滤所有行。我的代码如下所示:
status = textBox1.Text;
allocated = textBox2.Text;
BindingSource bs = new BindingSource();
bs.DataSource = customerDataGridView.DataSource;
bs.Filter = "[Status] LIKE '%" + status + "%' AND [AssignedTo] LIKE '%" + allocated + "%'";
customerDataGridView.DataSource = bs;
如果用户同时输入了状态和分配,这将很有效,因为它会找到具有这两个过滤器的所有记录。但是,如果其中一个过滤器留空,例如 Status = "Pending" 和 Allocation = "",它将按预期过滤记录,因此它将过滤 Status 为 Pending 且 Allocated 为空的所有字段。问题是,如果用户将 Allocated 留空,我希望它只忽略过滤器中的这个字段,并简单地过滤所有 Pending 记录而不考虑分配。
有什么想法可以实现这一点吗?
编辑:我应该提一下,为了简单起见,我在这里只包含了两个过滤器。我的程序实际上有 6 个过滤器,所以过滤器字符串需要 6 个参数。
【问题讨论】:
标签: c# datagridview