DataGridView行筛选

3
我正在使用 DataViewRowFilter,目前只过滤了其中一列,但我希望所有列都进行过滤。 我想通过在文本框中搜索一个词来实现这个过滤功能。
DataView dv = dt.DefaultView;

if (e.KeyChar == (char)13)
{
    dv.RowFilter = string.Format("Name LIKE '%{0}%'" ,textBox1.Text );
    //  dv.RowFilter = string.Format("Date LIKE '%{0}%'", textBox1.Text);
}

列标题 名称 = Name, 日期,等等。


什么问题?! - Ghasem
我的问题是,我想要过滤多个... - Simkyujin
只有“名称”部分过滤,但我想要“名称”+其他列。 - Simkyujin
3个回答

3

多列格式应该像这样;

dv.RowFilter = "Column1 = " + value1 + " AND Column2 = " + value2;

根据您的情况;
dv.RowFilter = string.Format("Name LIKE '%{0}%' AND Date = {1}" ,textBox1.Text, DateValue );

value1是什么意思? - Simkyujin
失败了...我不太理解...还有其他方法吗? - Simkyujin

3
(dataGridView1.DataSource as DataTable).DefaultView.RowFilter = string.Format("Name = '{0}'", TextBoxForSearch.Text);

请尝试使用代码示例功能。 - jcmordan
你的回答不仅应该包括代码,还应该添加一些解释。 - svgrafov

0
string query = textBox1.Text;
if(query == string.Empty)
{
    dataTable.DefaultView.RowFilter = string.Empty;
}
else
{
    (dgv.DataSource as DataTable).DefaultView.RowFilter = string.Format("Name = {0}", textBox1.Text);
    (dgv.DataSource as DataTable).DefaultView.RowFilter = string.Format("Date = {1}", textBox1.Text);
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接