ASP.NET Tutorial/XML/GridView
Версия от 15:30, 26 мая 2010; (обсуждение)
Load XML data to asp:GridView
<%@ 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">
<div class="Box">
<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>
</div>
</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>
Nested GridView for display XML document
<%@ 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">
<div>
<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>
<b><%#XPath("./Title")%></b><br />
<%#XPath("./Director")%><br />
<br /><i>Starring...</i><br />
<blockquote>
<asp:GridView id="GridView2" ShowHeader="False" GridLines="None" AutoGenerateColumns="False" DataSource="<%# XPathSelect("./Starring/Star") %>" runat="server">
<Columns>
<asp:TemplateField>
<ItemTemplate>
<%#XPath(".")%><br />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</blockquote>
</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>
</div>
</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>