C # фильтр XML-файла по атрибуту и ​​показать в datagridview - PullRequest
0 голосов
/ 09 апреля 2011

Я посмотрел и не могу найти ответ, я уверен, что просто не ищу правильные ключевые слова, смеется.

У меня есть файл XML, который я отображаю в виде таблицы данных, этовсе работает отлично.Я пытаюсь имплантировать, где я могу нажать кнопку и «перезагрузить» сетку данных только с некоторыми частями XML-файла.

Я опишу лучше.Просто терпите меня, я не лучший в объяснениитак.Я должен был загрузить изображение в другое место, где сайт не позволил бы мне разместить его здесь. введите описание ссылки здесь

Теперь я пытаюсь сделать make, когда при нажатии кнопки я могу отображать только определенные типы фильмов.Скажем, например, нажмите кнопку и отобразите только фильмы, которые являются «Действие».

Я нашел информацию по этому вопросу и получил, где я могу выбрать только действия.Я заставил их всплыть в окнах сообщений '

                XmlDocument xml = new XmlDocument();
            xml.Load("movie.xml");

            XmlNodeList xnList = xml.SelectNodes("/Movies/Name[@Type='Action']");
            foreach (XmlNode xn in xnList)
            {
                MessageBox.Show(xn.InnerText);
            }

Это фактически показывает, скажем, из изображения 2 фильма, которые являются действием.Но я не могу понять, как перезагрузить сетку данных только с этими записями, и предпочитаю со всей информацией, как и раньше.

Если я не объяснил четко, пожалуйста, скажите так, как я сказал, прежде чем я знаю, что я "Я не лучший в объяснении вещей.

1 Ответ

1 голос
/ 10 апреля 2011

Один из способов - загрузить XML в DataTable.Затем вы можете использовать его возможность фильтрации в памяти для фильтрации сетки.

DataSet ds = new DataSet();
ds.ReadXml("Movies.xml");
this.dataGridView.DataSource = ds.Tables[0];

Затем вы можете фильтровать ее следующим образом

private void FilterByType(string type)
{
            var dataView = ((DataTable) this.dataGridView.DataSource).DefaultView;
            dataView.RowFilter = "(Type = '" + type + "')";
}

Для фильтрации по подстроке используйте этот синтаксис

dataView.RowFilter = "(Type LIKE *'" + substring + "*')";
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...