过滤来自`datatable`的`datagridview`中的数据
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了过滤来自`datatable`的`datagridview`中的数据相关的知识,希望对你有一定的参考价值。
我试图在datagridview
事件中过滤data table
范围内的exchange
中的数据,但是当我清除datagridview
的所有数据时没有返回它是原始数据(我的意思是没有过滤器)它显示的所有数据都是最后过滤的数据
最后一个问题是在这个link answer中使用LINQ方法的过滤器比我使用的更好吗?
因为我有大约7个textbox
用作过滤器
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);
}
}
答案
要重置过滤器,您应将RowFilter
属性设置为string.Empty
或null:
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;
}
另一答案
一旦文本框为空,添加一个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
}
}
以上是关于过滤来自`datatable`的`datagridview`中的数据的主要内容,如果未能解决你的问题,请参考以下文章