ASP.Net/XML/XML TreeView

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

asp:TreeView binded to XML transformation data

   <source lang="csharp">

<%-- Code Revised from

Professional ASP.NET 2.0 XML (Programmer to Programmer) (Paperback) by Thiru Thangarathinam

  1. Publisher: Wrox (January 18, 2006)
  2. Language: English
  3. ISBN: 0764596772

--%> <%@ Page Language="C#" %> <html xmlns="http://www.w3.org/1999/xhtml" > <head>

   <title>Applying XSL Transformation on an XmlDataSource Control</title>

</head> <body>

   <form id="form1" runat="server">
     <asp:TreeView ID="TreeView1" Runat="server" 
           DataSourceID="XmlDataSource1" />
     <asp:XmlDataSource ID="XmlDataSource1" Runat="server" 
       DataFile="Bookstore.xml"
       TransformFile="Bookstore.xsl" />
   </form>

</body> </html>

<%-- <bookstore>

 <genre name="Fiction">
   <book ISBN="10-861003-324" Title="title 1" Price="19.99">
     <chapter num="1" name="Introduction">
       A
     </chapter>
     <chapter num="2" name="Body">
       B
     </chapter>
     <chapter num="3" name="Conclusion">
       C
     </chapter>
   </book>
   <book ISBN="1-861001-57-5" Title="title " Price="24.95">
     <chapter num="1" name="Introduction">
       D
     </chapter>
     <chapter num="2" name="Body">
       E
     </chapter>
     <chapter num="3" name="Conclusion">
       F
     </chapter>
   </book>   
 </genre>
 <genre name="NonFiction">
   <book ISBN="10-861003-324" Title="title 2" Price="19.99">
     <chapter num="1" name="Introduction">
       G
     </chapter>
     <chapter num="2" name="Body">
       H
     </chapter>
     <chapter num="3" name="Conclusion">
       I
     </chapter>
   </book>   
   <book ISBN="1-861001-57-6" Title="title 3" Price="27.95">
     <chapter num="1" name="Introduction">
       J
     </chapter>
     <chapter num="2" name="Body">
       K
     </chapter>
     <chapter num="3" name="Conclusion">
       L
     </chapter>
   </book>
 </genre>

</bookstore> --%>

<%-- <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

 <xsl:template match="bookstore">
   <bookstore>
     <xsl:apply-templates select="genre"/>
   </bookstore>
 </xsl:template>
 <xsl:template match="genre">
   <genre>
     <xsl:attribute name="name">
       <xsl:value-of select="@name"/>
     </xsl:attribute>
     <xsl:apply-templates select="book"/>
   </genre>
 </xsl:template>
 <xsl:template match="book">
   <book>
     <xsl:attribute name="ISBN">
       <xsl:value-of select="@ISBN"/>
     </xsl:attribute>
     <xsl:element name="title">
       <xsl:value-of select="title"/>
     </xsl:element>
     <xsl:element name="price">
       <xsl:value-of select="price"/>
     </xsl:element>
     <xsl:apply-templates select="chapters/chapter" />
   </book>
 </xsl:template>
 <xsl:template match="chapter">
   <chapter>
     <xsl:attribute name="num">
       <xsl:value-of select="@num"/>
     </xsl:attribute>
     <xsl:attribute name="name">
       <xsl:value-of select="@name"/>
     </xsl:attribute>
     <xsl:apply-templates/>
   </chapter>
 </xsl:template>

</xsl:stylesheet>

--%>

      </source>
   
  


asp TreeView data binding to XML data

   <source lang="csharp">
      

<%-- Code Revised from

Professional ASP.NET 2.0 XML (Programmer to Programmer) (Paperback) by Thiru Thangarathinam

  1. Publisher: Wrox (January 18, 2006)
  2. Language: English
  3. ISBN: 0764596772

--%>


<%@ Page Language="C#" %> <html xmlns="http://www.w3.org/1999/xhtml" > <head>

   <title>Binding XML Data from an XmlDataSource Control</title>

</head> <body>

   <form id="form1" runat="server">
       <asp:TreeView ID="TreeView1" Runat="server" DataSourceID="XmlDataSource1">
           <DataBindings>
               <asp:TreeNodeBinding ImageUrl="openbook.gif" TextField="Title" DataMember="book"></asp:TreeNodeBinding>
               <asp:TreeNodeBinding ImageUrl="notepad.gif" TextField="name" DataMember="chapter"></asp:TreeNodeBinding>
           </DataBindings>
       </asp:TreeView>    
           <asp:XmlDataSource ID="XmlDataSource1" Runat="server" DataFile="Bookstore.xml"
               XPath="bookstore/genre[@name="Fiction"]/book">
           </asp:XmlDataSource>
   </form>

XPath="bookstore/genre[@name="Fiction"]/book"</body> </html>

<%-- Bookstore.xml <bookstore>

 <genre name="Fiction">
   <book ISBN="10-861003-324" Title="title 1" Price="19.99">
     <chapter num="1" name="Introduction">
       A
     </chapter>
     <chapter num="2" name="Body">
       B
     </chapter>
     <chapter num="3" name="Conclusion">
       C
     </chapter>
   </book>
   <book ISBN="1-861001-57-5" Title="title " Price="24.95">
     <chapter num="1" name="Introduction">
       D
     </chapter>
     <chapter num="2" name="Body">
       E
     </chapter>
     <chapter num="3" name="Conclusion">
       F
     </chapter>
   </book>   
 </genre>
 <genre name="NonFiction">
   <book ISBN="10-861003-324" Title="title 2" Price="19.99">
     <chapter num="1" name="Introduction">
       G
     </chapter>
     <chapter num="2" name="Body">
       H
     </chapter>
     <chapter num="3" name="Conclusion">
       I
     </chapter>
   </book>   
   <book ISBN="1-861001-57-6" Title="title 3" Price="27.95">
     <chapter num="1" name="Introduction">
       J
     </chapter>
     <chapter num="2" name="Body">
       K
     </chapter>
     <chapter num="3" name="Conclusion">
       L
     </chapter>
   </book>
 </genre>

</bookstore> --%>

      </source>
   
  


Bind inline XML datasource to asp treeview

   <source lang="csharp">

<%@ Page Language="C#" %> <html xmlns="http://www.w3.org/1999/xhtml" > <head>

   <title>Using Inline XML Data in an XmlDataSource Control</title>

</head> <body>

   <form id="form1" runat="server">
       <asp:TreeView ID="TreeView1" Runat="server" DataSourceID="XmlDataSource1">
           <DataBindings>
               <asp:TreeNodeBinding ImageUrl="openbook.gif" TextField="Title" DataMember="book"></asp:TreeNodeBinding>
               <asp:TreeNodeBinding ImageUrl="notepad.gif" TextField="name" DataMember="chapter"></asp:TreeNodeBinding>
           </DataBindings>
       </asp:TreeView>    
           <asp:XmlDataSource ID="XmlDataSource1" Runat="server" XPath="bookstore/book">
                                   
                   <bookstore>
                       <book Title="title 1" Price="19.99">
                           <chapter num="1" name="Introduction">
                               A
                           </chapter>
                           <chapter num="2" name="Body">
                               B
                           </chapter>
                           <chapter num="3" name="Conclusion">
                               C
                           </chapter>
                       </book>
                       <book Title="title 2" Price="24.95">
                           <chapter num="1" name="Introduction">
                               D
                           </chapter>
                           <chapter num="2" name="Body">
                               E
                           </chapter>
                           <chapter num="3" name="Conclusion">
                               F
                           </chapter>
                       </book>   
                   </bookstore>
               
           </asp:XmlDataSource>
   </form>

</html>

      </source>
   
  


Build tree out of the XML data file

   <source lang="csharp">

<%@ Page Language="C#" %> <!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 id="Head1" runat="server">

   <title>TreeView XML</title>

</head> <body>

   <form id="form1" runat="server">
   <asp:TreeView
       id="TreeView1"
       DataSourceID="srcMovies"
       Runat="server" />
       
    <asp:XmlDataSource
       id="srcMovies"
       DataFile="Movies.xml"
       Runat="server" />   
   
   </form>

</body> </html> <%-- <?xml version="1.0" encoding="utf-8" ?> <movies>

 <action>
   <StarWars />
   <IndependenceDay />
 </action>
 <horror>
   <Jaws />
   <NightmareBeforeChristmas />
 </horror>

</movies> --%>

      </source>
   
  


detailed XML data binding

   <source lang="csharp">

<%@ Page Language="C#" %> <!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>Using XML Data Source</title>

</head> <body>

       <form id="form1" runat="server">
           <asp:xmldatasource runat="server" ID="XmlDataSource1" DataFile="Data.xml">
           </asp:xmldatasource>  
           <asp:TreeView ID="TreeView1" runat="server" DataSourceID="XmlDataSource1">
               <DataBindings>
                   <asp:TreeNodeBinding Depth="3" DataMember="employeeid" 
                       TextField="#innertext" />
                   <asp:TreeNodeBinding Depth="3" DataMember="lastname" 
                       TextField="#innertext" />
                   <asp:TreeNodeBinding Depth="3" DataMember="firstname" 
                       TextField="#innertext" />
                   <asp:TreeNodeBinding Depth="3" DataMember="title" 
                       TextField="#innertext" />
               </DataBindings>
           </asp:TreeView> 

           <asp:xmldatasource runat="server" ID="XmlDataSource2" DataFile="Data.xml"
               xpath="MyDataSet/NorthwindEmployees/Employee" >
           </asp:xmldatasource>  
           <asp:TreeView ID="TreeView2" runat="server" DataSourceID="XmlDataSource2">
               <DataBindings>
                   <asp:TreeNodeBinding Depth="1" DataMember="employeeid" 
                       TextField="#innertext" />
                   <asp:TreeNodeBinding Depth="1" DataMember="lastname" 
                       TextField="#innertext" />
                   <asp:TreeNodeBinding Depth="1" DataMember="firstname" 
                       TextField="#innertext" />
                   <asp:TreeNodeBinding Depth="1" DataMember="title" 
                       TextField="#innertext" />
               </DataBindings>
           </asp:TreeView>         
       </form>

</body> </html> File: Data.xml <?xml version="1.0" standalone="yes"?> <MyDataSet>

 <NorthwindEmployees>
   <Employee>
     <employeeid>1</employeeid>
     <lastname>D</lastname>
     <firstname>N</firstname>
     <title>Representative</title>
   </Employee>
   <Employee>
     <employeeid>2</employeeid>
     <lastname>Fill</lastname>
     <firstname>Andrew</firstname>
     <title>President</title>
   </Employee>
   <Employee>
     <employeeid>3</employeeid>
     <lastname>Lev</lastname>
     <firstname>Janet</firstname>
     <title>Sales</title>
   </Employee>
 </NorthwindEmployees>

</MyDataSet>

</source>
   
  


TreeNode Binding

   <source lang="csharp">

<%@ Page Language="C#" %> <!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:XmlDataSource ID="XmlDataSource1" runat="server" DataFile="Data.xml" />
       <asp:TreeView DataSourceID="XmlDataSource1" 
                     ID="TreeView1" 
                     ImageSet="WindowsHelp"
                     runat="server">
           <ParentNodeStyle Font-Bold="False" />
           <SelectedNodeStyle BackColor="#B5B5B5" 
                              Font-Underline="False" 
                              HorizontalPadding="0px"
                              VerticalPadding="0px" />
           <DataBindings>
               <asp:TreeNodeBinding DataMember="book" TextField="Name" />
               <asp:TreeNodeBinding DataMember="Publisher" TextField="PublisherName" />
               <asp:TreeNodeBinding DataMember="Author" TextField="Name" />
           </DataBindings>
           <NodeStyle Font-Names="Tahoma" 
                      Font-Size="8pt" 
                      ForeColor="Black" 
                      HorizontalPadding="5px"
                      NodeSpacing="0px" 
                      VerticalPadding="1px" />
           <HoverNodeStyle Font-Underline="True" ForeColor="#6666AA" />
       </asp:TreeView>
   </form>

</body> </html> File: Data.xml <?xml version="1.0" encoding="utf-8" ?> <Books>

 <book Name="Programming C#">
   <Author Name = "AAA" />
   <Publisher PublisherName = "publisher 1" />
 </book>
 <book Name="Programming ASP.NET">
   <Author Name = "AAA" />
   <Author Name = "Dan Hurwitz" />
   <Publisher PublisherName = "publisher 1" />
 </book>
 <book Name="Visual C# Notebook">
   <Author Name = "AAA" />
   <Publisher PublisherName = "publisher 1" />
 </book>

</Books>

</source>
   
  


XML data binding?

   <source lang="csharp">

<%@ Page Language="C#"%> <!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>Using XML Data Source::Simple</title>

</head> <body>

       <form id="form1" runat="server">
           <asp:xmldatasource runat="server" ID="XmlDataSource1" DataFile="Data.xml" />
           <asp:TreeView ID="TreeView1" runat="server" DataSourceID="XmlDataSource1" />
       </form>

</body> </html> File: Data.xml <?xml version="1.0" standalone="yes"?> <MyDataSet>

 <NorthwindEmployees>
   <Employee>
     <employeeid>1</employeeid>
     <lastname>D</lastname>
     <firstname>N</firstname>
     <title>Representative</title>
   </Employee>
   <Employee>
     <employeeid>2</employeeid>
     <lastname>Fill</lastname>
     <firstname>Andrew</firstname>
     <title>President</title>
   </Employee>
   <Employee>
     <employeeid>3</employeeid>
     <lastname>Lev</lastname>
     <firstname>Janet</firstname>
     <title>Sales</title>
   </Employee>
 </NorthwindEmployees>

</MyDataSet>

</source>