Фильтрация данных внутри `datagridview`, ограниченного из` datatable` - PullRequest
0 голосов
/ 11 сентября 2018

Я пытаюсь отфильтровать данные в пределах datagridview, ограниченном от data table, как показано ниже для события exchange, но когда я очищаю все данные из 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);
        }
    }

Ответы [ 2 ]

0 голосов
/ 12 сентября 2018

Чтобы сбросить фильтр, необходимо установить для свойства RowFilter значение string.Empty или ноль:

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;
}
0 голосов
/ 11 сентября 2018

Добавьте еще, чтобы привязать источник данных, когда текстовое поле пусто, например,

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
        }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...