Фильтровать GridView, используя текстовое поле с запятыми C# - PullRequest
0 голосов
/ 19 января 2020

Я пытаюсь отфильтровать корыто по сетке, используя текстовое поле, когда мне нужно использовать запятые для поиска определенных c элементов в этом виде сетки

Это мой вид сетки:

enter image description here

Как видите, столбец Ingredientes содержит элементы, разделенные запятыми. То, что я пытаюсь сделать, это если я напишу в текстовом поле Ingredientes «repolho, salsa», например, появится строка.

В данный момент я могу искать, есть ли в столбце Ingredientes только один элемент, подобный этому, с "ing"

Это мой код

// Procura pelos ingredientes
else if (txtTitulo.Text == "" && txtIngredientes.Text != "")
{
    dataGridReceitas.Rows.Clear();

    if (File.Exists(receitas))
    {
        sr = File.OpenText(receitas);
        string linha = "";
        int x = 0;

        while((linha = sr.ReadLine()) != null)
        {
            string[] campos = linha.Split(';');

            if(txtIngredientes.Text == campos[3])
            {
                dataGridReceitas.Rows.Add(1);
                dataGridReceitas[0, x].Value = campos[0];
                dataGridReceitas[1, x].Value = campos[1];
                dataGridReceitas[2, x].Value = campos[2];
                dataGridReceitas[3, x].Value = campos[3];

                x++;
            }
        }

        sr.Close();
    }
}

1 Ответ

0 голосов
/ 19 января 2020

Вы можете просто сделать это:

else if (txtTitulo.Text == "" && txtIngredientes.Text != "")
{
    string searchValue = txtIngredientes.Text;
    dataGridReceitas.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
    try
    {
        bool valueResult = false;
        foreach (DataGridViewRow row in dataGridReceitas.Rows)
        {
            if (row.Cells[3].Value != null && row.Cells[3].Value.ToString().Equals(searchValue))
            {
                int rowIndex = row.Index;
                dataGridView1.Rows[rowIndex].Selected = true;
                valueResult = true;
                break;
            }
        }
        if (!valueResult)
        {
            MessageBox.Show("Unable to find " + searchtextBox.Text, "Not Found");
            return;
        }
    }
    catch (Exception exc)
    {
        MessageBox.Show(exc.Message);
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...