ASP.NET Tutorial/XML/GridView

Материал из .Net Framework эксперт
Перейти к: навигация, поиск

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>