我看了,找不到答案,我相信我只是不尋找正確的關鍵字,哈哈。c#按屬性過濾xml文件並在datagridview中顯示
我有一個XML文件,我顯示在datagridview,這一切工作正常。我試圖植入到哪裏我可以點擊一個按鈕,並'只重載'datagridview只有特定部分的XML文件。
我會更好地描述。只要忍耐一下,我不是最好的解釋。
這是我的xml文件的佈局。
<?xml version="1.0"?>
<Movies>
<Name Name="Saw" Type="Horror" Year="2004-10-29" Overview="Overview">Saw</Name>
<Name Name="Saw II" Type="Horror" Year="2005-10-28" Overview="Overview">Saw II</Name>
<Name Name="Speed" Type="Action" Year="1994-06-10" Overview="Overview">Speed</Name>
<Name Name="Batman Begins" Type="Action" Year="2005-06-17" Overview="Overview">Batman Begins</Name>
</Movies>
當我正常顯示,我有它像一個網格視圖像這樣。 我不得不在其他地方上傳圖片,網站不會讓我把它放在這裏。 enter link description here
現在我想要做的是當我點擊一個按鈕時,我只能顯示某些電影類型。例如說,點擊一個按鈕,只顯示「動作」的電影。
我發現了這方面的信息,並得到了我只能選擇行動的地方。我讓他們彈出在消息框'
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);
}
這實際上顯示說,從圖像中的兩個電影是行動。但我不知道如何重新加載datagridview只有這些條目,並喜歡以前的所有信息。
如果我沒有解釋清楚請說出來,因爲我之前說的,我知道我「米不解釋的事情是最好的。
我已經在這裏試過你的方法。我仍然遇到錯誤,我確信這是我只是一個小菜鳥。 我嘗試像你顯示的加載,但網格返回一個空白。 DataSet movies = new DataSet(「Name」); string filePath =「movie.xml」; movies.ReadXml(filePath); dataGridView1.DataSource = movies.Tables [0]; FilterByType(「Action」); – AlabamaHit 2011-04-10 06:30:16
您是否定義了datagridview的列?如果在設置DataSource之前未嘗試設置dataGridView1.AutoGenerateColumns = true。 – 2011-04-10 08:43:57
現在我試過 DataSet movies = new DataSet(); string filePath =「movie.xml」; movies.ReadXml(filePath); dataGridView1.AutoGenerateColumns = true; DataGridView1.DataSource = moives.Tables [0]; FilterByType(「Action」); 同樣的結果,它返回一個空的datagridview。你認爲這可能是因爲在程序加載時,datagridview顯示列表中的所有moives。對於大名單這是試圖得到這個的原因,所以我可以減少名單隻有某些gendre 再次,感謝您抽出時間和幫助我。非常感謝。 – AlabamaHit 2011-04-10 22:22:07