C# 从“datatable”绑定的“datagridview”中筛选数据`
我正试图在C# 从“datatable”绑定的“datagridview”中筛选数据`,c#,.net,winforms,datagridview,.net-4.0,C#,.net,Winforms,Datagridview,.net 4.0,我正试图在exchange事件上过滤datagridview中从数据表绑定的数据,但当我清除datagridview中的所有数据时不起作用 返回到它是原始数据(我的意思是没有过滤器),它显示的是最后一个 数据过滤 最后一个问题是,在本文中使用LINQ方法的过滤器比我使用的过滤器好吗 因为我有大约7个文本框用作过滤器 private void TB_FirstName_TextChanged(object sender, EventArgs e) { if (!st
exchange
事件上过滤datagridview
中从数据表
绑定的数据,但当我清除datagridview中的所有数据时
不起作用
返回到它是原始数据(我的意思是没有过滤器),它显示的是最后一个
数据过滤
最后一个问题是,在本文中使用LINQ方法的过滤器比我使用的过滤器好吗
因为我有大约7个文本框
用作过滤器
private void TB_FirstName_TextChanged(object sender, EventArgs e)
{
if (!string.IsNullOrWhiteSpace(TB_FirstName.Text))
{
(DGV_SearchResult.DataSource as DataTable).DefaultView.RowFilter = string.Format("NAM LIKE '%{0}%'", TB_FirstName.Text);
}
}
当文本框为空时,添加一个else来重新绑定数据源,如
private void TB_FirstName_TextChanged(object sender, EventArgs e)
{
if (!string.IsNullOrWhiteSpace(TB_FirstName.Text))
{
(DGV_SearchResult.DataSource as DataTable).DefaultView.RowFilter = string.Format("NAM LIKE '%{0}%'", TB_FirstName.Text);
}
else
{
// Load data again
}
}
要重置筛选器,应将RowFilter
属性设置为string。为空或为空:
private void TB_FirstName_TextChanged(object sender, EventArgs e)
{
var dt = DGV_SearchResult.DataSource as DataTable;
if (!string.IsNullOrWhiteSpace(TB_FirstName.Text))
dt.DefaultView.RowFilter = string.Format("NAM LIKE '%{0}%'", TB_FirstName.Text);
else
dt.DefaultView.RowFilter = string.Empty;
}
最好插入一个BindingSource!