我想在列strSearchFilter中找到包含值(任何值)的单元格,并隐藏没有值的行(即NULL)。下面的代码返回strSearchFilter列中与我想要的相反的所有行。
由于
strSearchFilter += string.IsNullOrEmpty(txtFilterValue.Text) ? " IS NULL" : " NOT LIKE '%" + txtFilterValue.Text + "%'";
}
private void performFilter(string strFilterText)
{
DataTable table = dataGridView1.DataSource as DataTable;
if (table != null)
{
List<DataRow> filteredRows = new List<DataRow>(table.Select(strFilterText));
CurrencyManager cm = (CurrencyManager)BindingContext[dataGridView1.DataSource];
cm.SuspendBinding();
foreach (DataGridViewRow row in dataGridView1.Rows)
{
row.Visible = filteredRows.Contains(((DataRowView)row.DataBoundItem).Row);
}
cm.ResumeBinding();
}
}
感谢您的帮助。
答案 0 :(得分:1)
我建议使用您希望过滤器应用的列,并使用简单的SQL语法,例如:
MyColumn IS NOT NULL AND MyColumn <> ''
这就是你要找的东西吗?
答案 1 :(得分:0)
您需要撰写以下内容:
strSearchFilter += string.IsNullOrEmpty(txtFilterValue.Text) ? " IS NOT NULL" : " NOT LIKE '%" + txtFilterValue.Text + "%'";