ASP.NET Tutorial/XML/GridView
Load XML data to asp:GridView
<source lang="csharp">
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="XmlDataSet" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" > <head runat="server">
<title>Untitled Page</title>
</head> <body>
<form id="form1" runat="server">
<asp:Button ID="cmdXmlToDataSet" runat="server" Text="Read XML into DataSet" OnClick="cmdXmlToDataSet_Click" Width="184px" /> <asp:GridView ID="gridData" runat="server" EnableViewState="False" ></asp:GridView>
</form>
</body> </html> File: Default.aspx.cs using System; using System.Data; using System.Configuration; using System.Collections; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; using System.Data.SqlClient; using System.Web.Configuration; using System.Xml; public partial class XmlDataSet : System.Web.UI.Page {
protected void cmdXmlToDataSet_Click(object sender, EventArgs e) { XmlDataDocument dataDoc = new XmlDataDocument(); dataDoc.DataSet.ReadXmlSchema("Data.xsd"); dataDoc.Load("Data.xml"); gridData.DataSource = dataDoc.DataSet; gridData.DataBind(); }
} File: Data.xml <?xml version="1.0" standalone="yes"?> <SuperProProductList xmlns="yourURI" >
<Product ID="1" Name="Chair"> <Price>49.33</Price> </Product> <Product ID="2" Name="Car"> <Price>43398.55</Price> </Product> <Product ID="3" Name="Fresh Fruit Basket"> <Price>49.99</Price> </Product>
</SuperProProductList> File: Data.xsd <?xml version="1.0"?> <xs:schema
targetNamespace="yourURI" xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" > <xs:element name="SuperProProductList"> <xs:complexType> <xs:sequence maxOccurs="unbounded"> <xs:element name="Product"> <xs:complexType> <xs:sequence> <xs:element name="Price" minOccurs="1" type="xs:double" /> </xs:sequence> <xs:attribute name="ID" use="required" type="xs:int" /> <xs:attribute name="Name" use="required" type="xs:string" /> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> </xs:element>
</xs:schema></source>
Nested GridView for display XML document
<source lang="csharp">
<%@ Page Language="C#" AutoEventWireup="false" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" > <head runat="server">
<title>Nested Grids</title>
</head> <body>
<form id="form1" runat="server">
<asp:XmlDataSource ID="sourceDVD" runat="server" DataFile="~/Data.xml"></asp:XmlDataSource> <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataSourceID="sourceDVD" BorderStyle="Groove" BorderWidth="2px" CellPadding="4" ForeColor="#333333" GridLines="None" Width="279px"> <Columns> <asp:TemplateField HeaderText="DVD"> <ItemTemplate> <%#XPath("./Title")%>
<%#XPath("./Director")%>
Starring...
<asp:GridView id="GridView2" ShowHeader="False" GridLines="None" AutoGenerateColumns="False" DataSource="<%# XPathSelect("./Starring/Star") %>" runat="server"> <Columns> <asp:TemplateField> <ItemTemplate> <%#XPath(".")%>
</ItemTemplate> </asp:TemplateField> </Columns> </asp:GridView>
</ItemTemplate> </asp:TemplateField> </Columns> <FooterStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" /> <RowStyle BackColor="#EFF3FB" /> <PagerStyle BackColor="#2461BF" ForeColor="White" HorizontalAlign="Center" /> <SelectedRowStyle BackColor="#D1DDF1" Font-Bold="True" ForeColor="#333333" /> <HeaderStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" /> <EditRowStyle BackColor="#2461BF" /> <AlternatingRowStyle BackColor="White" /> </asp:GridView>
</form>
</body> </html> File: Data.xml <?xml version="1.0"?> <DvdList>
<DVD ID="1" Category="Category 1"> <Title>title 1</Title> <Director>directory 2</Director> <Price>1</Price> <Starring> <Star>star 1</Star> <Star>star 2</Star> </Starring> </DVD> <DVD ID="2" Category="Category 2"> <Title>title 2</Title> <Director>directory 2</Director> <Price>2</Price> <Starring> <Star>star 3</Star> <Star>star 4</Star> </Starring> </DVD>
</DvdList></source>