2013-11-27 44 views
0

嘗試在asp.net中使用gridview從xml文件顯示一些簡單的數據行。我已經在頁面上放下了我的gridview並選擇了xmldatasource,但是我的錯誤是沿着gridview1沒有任何屬性或屬性來生成列的。我還應該做些什麼。我正在閱讀的所有內容都說添加你的xml文件添加你的網格視圖,然後添加你的數據源,這將呈現你的文件中的內容。GridView顯示XML文件數據

由於

這裏是xml文件

<Employees> 
     <Employee> 
     <Name>Adams John</Name> 
     <Age>35</Age> 
     <Gender>M</Gender> 
     <Salary>65000</Salary> 
     </Employee> 
     <Employee> 
     <Name>Mary Jane</Name> 
     <Age>35</Age> 
     <Gender>F</Gender> 
     <Salary>75000</Salary> 
     </Employee> 
    </Employee> 

回答

1

這裏有一個類似的問題上左右。

Gridview binding to XML

我想你會發現上面所引用的線程合適的解決方案。

問候, 烏羅什

1

如從here

引述的最簡單的可能解決方案是將XML加載到數據集並綁定到。另一種解決方案是使用XML序列化從XML創建對象圖並綁定到該對象圖。要綁定到原始XML,您需要創建實現ITypedList,IBindingList和ICustomTypeDescriptor的包裝類。

或者,你可以試試這個..

XmlReader xmlFile = XmlReader.Create("Xml_FilePath",new XmlReaderSettings()); 
DataSet dataSet = new DataSet(); 

dataSet.ReadXml(xmlFile); 

dataGridView1.DataSource = dataSet.Tables["Employees"]; 
dataGridView1.DataBind(); 
0
 DataSet dsresult = new DataSet(); 
     XmlDocument doc = new XmlDocument(); 
     doc.LoadXml("<Employees><Employee><Name>Adams John</Name><Age>35</Age><Gender>M</Gender><Salary>65000</Salary></Employee><Employee><Name>Mary Jane</Name> <Age>35</Age><Gender>F</Gender><Salary>75000</Salary></Employee></Employees>"); 
     XmlElement exelement = doc.DocumentElement; 
     if (exelement != null) 
     { 
      XmlNodeReader nodereader = new XmlNodeReader(exelement); 
      dsresult.ReadXml(nodereader, XmlReadMode.Auto); 
      GridView1.DataSource = dsresult; 
      GridView1.DataBind(); 
     } 
     else 
     { 
      GridView1.DataSource = null; 
      GridView1.DataBind(); 
     } 
0

試試這個:

 DataSet dsresult = new DataSet(); 
     XmlDocument doc = new XmlDocument(); 
     doc.LoadXml("<Employees><Employee><Name>Adams John</Name><Age>35</Age><Gender>M</Gender><Salary>65000</Salary></Employee><Employee><Name>Mary Jane</Name> <Age>35</Age><Gender>F</Gender><Salary>75000</Salary></Employee></Employees>"); 
     XmlElement exelement = doc.DocumentElement; 
     if (exelement != null) 
     { 
      XmlNodeReader nodereader = new XmlNodeReader(exelement); 
      dsresult.ReadXml(nodereader, XmlReadMode.Auto); 
      GridView1.DataSource = dsresult; 
      GridView1.DataBind(); 
     } 
     else 
     { 
      GridView1.DataSource = null; 
      GridView1.DataBind(); 
     }