[英]Filter data within `datagridview` bounded from `datatable`
我正在嘗試在exchange
事件中過濾由data table
界定的datagridview
內的data table
,如下所示,但是當我清除datagridview
所有數據都不會返回原始數據(我的意思是沒有過濾器)時,它表示的是最后過濾的數據
最后一個問題是在此鏈接答案中使用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);
}
}
一旦文本框為空,則添加其他元素以重新綁定數據源,例如
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.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;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.