Условная сортировка для просмотра данных - PullRequest
0 голосов
/ 13 июня 2019

У меня есть сетка данных, в которой у меня есть текстовое поле для поиска имени учетной записи, я использую string.contains и задаю соответствующую ячейку для первого отображаемого индекса, но мне нужно, чтобы пользователь мог видеть другие совпадающие ячейки.

 private void SearchAccountTxtBox_TextChanged(object sender, EventArgs e)
    {
        for (int i = 0; i < AppraisersDGV.Rows.Count; i++)
        {
            if (AppraisersDGV.Rows[i].Cells[1].Value.ToString().Contains(SearchAccountTxtBox.Text.Trim().ToUpper(),)|| AppraisersDGV.Rows[i].Cells[0].Value.ToString().Contains(SearchAccountTxtBox.Text.Trim()))
            {
                AppraisersDGV.FirstDisplayedScrollingRowIndex = i;
                break;
            }
        }
    }

Я искал на SO, но пока единственный вид сортировки, который я видел, был либо по возрастанию, либо по убыванию

Ответы [ 2 ]

0 голосов
/ 13 июня 2019

Вы используете datatable при заполнении данных в Datagridview?

, если это так, попробуйте это.

Dataview dvp = datatable
dvp.rowfilter = String.format("Column_name Like '%{0}%', SearchAccountTxtBox.Text)
Datagridview.datasource = dvp

Надеюсь, это поможет.

0 голосов
/ 13 июня 2019

Я давно не делал winforms, но что-то вроде этого должно работать:

private void SearchAccountTxtBox_TextChanged(object sender, EventArgs e)
{
    string searchValue = SearchAccountTxtBox.Text.Trim();
    foreach (DataGridViewRow row in AppraisersDGV.Rows)
    {
        row.Visible = row.Cells[1].Value.ToString().Contains(searchValue.ToUpper() || row.Cells[0].Value.ToString().Contains(searchValue);
    }
}

Скрывает все строки, которые не соответствуют поисковому запросу.

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