Поле со списком фильтров в GridView, заполненном текстовым файлом - PullRequest
0 голосов
/ 17 января 2020

У меня возникла проблема, когда я пытаюсь отфильтровать свой комбинированный список через GridView, когда я нажимаю кнопку "Procurar", сетка не обновляется, но строка im просто переключается. я объясню с изображениями

enter image description here

, затем, когда я выбираю другую категорию "Категория", он делает это

enter image description here

По сути, он переписал мою исходную строку новой строкой, которая в качестве категории "Веганский".

вот код:

private void btnSearch_Click(object sender, EventArgs e) {
    string receitas = @"receitas.txt";
    if (File.Exists(receitas)) {
        StreamReader sr2 = File.OpenText(receitas);
        string linha2 = "";
        int x = 0;
        while ((linha2 = sr2.ReadLine()) != null) {
            string[] campos2 = linha2.Split(';');

            if (comboBoxCategorias.SelectedItem.ToString() == campos2[2]) {

                if ((txtTitulo.Text == "") || (txtIngredientes.Text == "")) {

                    dataGridReceitas[0, x].Value = campos2[0];
                    dataGridReceitas[1, x].Value = campos2[1];
                    dataGridReceitas[2, x].Value = campos2[2];
                    dataGridReceitas[3, x].Value = campos2[3];

                    x++;
                }
            }
        }
        sr2.Close();
    }
}

1 Ответ

0 голосов
/ 18 января 2020
 private void btnSearch_Click(object sender, EventArgs e)
    {
        dataGridReceitas.Rows.Clear();
        string receitas = @"receitas.txt";
        if (File.Exists(receitas))
        {
            StreamReader sr2 = File.OpenText(receitas);
            string linha2 = "";
            int x = 0;
            while ((linha2 = sr2.ReadLine()) != null)
            {
                string[] campos2 = linha2.Split(';');

                if(comboBoxCategorias.SelectedItem.ToString() == campos2[2])
                {

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

                        x++;
                    }


                }



            }
            sr2.Close();
        }
    }

решением было добавить код dataGridReceitas.Rows.Clear (); чтобы очистить сетку и просто отобразить строки, которые я хотел, также добавив DataGridReceitas.Rows.Add (1), поэтому, когда результат поиска больше 1, приложение не выполняет sh

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