簡體   English   中英

過濾由datatable界定的datagridview中的數據

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM