ASP.NET Tutorial/ASP.net Controls/TreeView

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

Binding to an XML File

   <source lang="csharp">

File: Data.xml <movies>

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

</movies>

File: TreeViewXml.aspx <%@ 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="~/Data.xml"
       Runat="server" />
   </form>

</body> </html></source>


Complex tree view

   <source lang="csharp">

File: Data.xml <movies>

 <category id="category1" text="Action">
   <movie id="movie1" text="Star Wars" />
   <movie id="movie2" text="Independence Day" />
 </category>
 <category id="category2" text="Horror">
   <movie id="movie3" text="Jaws" />
   <movie id="movie4" text="Nightmare Before Christmas" />
 </category>

</movies>

File: TreeViewXMLComplex.aspx <%@ 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 Complex</title>

</head> <body>

   <form id="form1" runat="server">
   <asp:TreeView
       id="TreeView1"
       DataSourceID="srcMovies"
       Runat="server">
       <DataBindings>
       <asp:TreeNodeBinding
           DataMember="category"
           TextField="text"
           ValueField="id" />
       <asp:TreeNodeBinding
           DataMember="movie"
           TextField="text"
           ValueField="id" />
       </DataBindings>
   </asp:TreeView>
   <asp:XmlDataSource
       id="srcMovies"
       DataFile="~/Data.xml"
       Runat="server" />
   </form>

</body> </html></source>


Displaying a Site Map with a TreeView control.

   <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 Site Map</title>

</head> <body>

   <form id="form1" runat="server">
   <asp:TreeView
       id="TreeView1"
       DataSourceID="srcSiteMap"
       Runat="server" />
   <asp:SiteMapDataSource
       id="srcSiteMap"
       Runat="server" />
   </form>

</body> </html>

File: Web.sitemap <siteMap xmlns="http://schemas.microsoft.ru/AspNet/SiteMap-File-1.0" > <siteMapNode

 url="Default.aspx"
 title="Home"
 description="The Home Page">
 <siteMapNode
   url="Products/Default.aspx"
   title="Our Products"
   description="Products that we offer">
   <siteMapNode
     url="Products/FirstProduct.aspx"
     title="First Product"
     description="The description of the First Product" />
   <siteMapNode
     url="Products/SecondProduct.aspx"
     title="Second Product"
     description="The description of the Second Product" />
 </siteMapNode>
 <siteMapNode
   url="Services/Default.aspx"
   title="Our Services"
   description="Services that we offer">
   <siteMapNode
     url="Services/FirstService.aspx"
     title="First Service"
     description="The description of the First Service"
     metaDescription="The first service" />
   <siteMapNode
     url="Services/SecondService.aspx"
     title="Second Service"
     description="The description of the Second Service" />
 </siteMapNode>

</siteMapNode> </siteMap></source>


Displaying TreeView check boxes.

   <source lang="csharp">

<%@ Page Language="C#" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> <script runat="server">

   protected void btnSubscribe_Click(object sender, EventArgs e)
   {
       foreach (TreeNode node in TreeView1.CheckedNodes)
           bltSubscribed.Items.Add(node.Text);
   }

</script> <html xmlns="http://www.w3.org/1999/xhtml" > <head id="Head1" runat="server">

   <title>TreeView CheckBoxes</title>

</head> <body>

   <form id="form1" runat="server">
   Select the Newsgroups which you
   would like to join:
   
<asp:TreeView id="TreeView1" ShowCheckBoxes="Leaf" Runat="server"> <Nodes> <asp:TreeNode Text="Programming"> <asp:TreeNode Text="ASP.NET" /> <asp:TreeNode Text="JAVA" /> <asp:TreeNode Text="Cold Fusion" /> </asp:TreeNode> <asp:TreeNode Text="Sports"> <asp:TreeNode Text="Baseball" /> <asp:TreeNode Text="Hockey" /> <asp:TreeNode Text="Football" /> </asp:TreeNode> </Nodes> </asp:TreeView>
<asp:Button id="btnSubscribe" Text="Subscribe" OnClick="btnSubscribe_Click" Runat="server" />

   You selected:
   <asp:BulletedList
       id="bltSubscribed"
       EnableViewState="false"
       Runat="server" />
   </form>

</body> </html></source>


Selecting a TreeView node.

   <source lang="csharp">

<%@ Page Language="C#" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> <script runat="server">

   protected void TreeView1_SelectedNodeChanged(object sender, EventArgs e)
   {
       lblMessage.Text = TreeView1.SelectedValue;
   }

</script> <html xmlns="http://www.w3.org/1999/xhtml" > <head id="Head1" runat="server">

   <title>TreeView Value</title>

</head> <body>

   <form id="form1" runat="server">
   <asp:TreeView
       id="TreeView1"
       OnSelectedNodeChanged="TreeView1_SelectedNodeChanged"
       Runat="server" >
       <Nodes>
       <asp:TreeNode
           Text="Home"
           Value="Home">
           <asp:TreeNode
               Text="Products">
               <asp:TreeNode
                   Text="First Product"
                   Value="FirstProduct" />
               <asp:TreeNode
                   Text="Second Product"
                   Value="SecondProduct" />
           </asp:TreeNode>
           <asp:TreeNode
               Text="Services">
               <asp:TreeNode
                   Text="First Service"
                   Value="FirstService" />
               <asp:TreeNode
                   Text="Second Service"
                   Value="SecondService" />
           </asp:TreeNode>
       </asp:TreeNode>
       </Nodes>
   </asp:TreeView>
   You selected:
   <asp:Label
       id="lblMessage"
       EnableViewState="false"
       Runat="server" />
   </form>

</body> </html></source>


Tree style with XML data

   <source lang="csharp">

<%@ page language="VB" %> <script runat="server"> </script> <html> <head runat="server">

   <title>Untitled Page</title>

</head> <body>

   <form runat="server">
       <asp:treeview id="TreeView1" 
                     runat="server" 
                     font-underline="False" 
                     datasourceid="XmlDataSource1"
                     font-names="Tahoma" 
                     font-size="8pt" 
                     font-italic="False" 
                     font-bold="False" 
                     imageset="XP_Explorer"
                     forecolor="Black" 
                     nodeindent="15" 
                     autogeneratebindings="False">
           <selectednodestyle backcolor="#B5B5B5" 
                              font-underline="False" 
                              font-italic="False"
                              font-bold="False">
           </selectednodestyle>
           <hovernodestyle forecolor="#6666AA" 
                           font-underline="True" 
                           font-italic="False" 
                           font-bold="False">
           </hovernodestyle>
           <bindings>
               <asp:treenodebinding value="My Bookstore" depth="0" text="My Bookstore">
               </asp:treenodebinding>
               <asp:treenodebinding datamember="genre" textfield="name" depth="1">
               </asp:treenodebinding>
               <asp:treenodebinding datamember="book" textfield="isbn" depth="2">
               </asp:treenodebinding>
           </bindings>
           <parentnodestyle font-underline="False" font-italic="False" font-bold="False">
           </parentnodestyle>
           <leafnodestyle font-underline="False" font-italic="False" font-bold="False">
           </leafnodestyle>
           <nodestyle forecolor="Black" 
                      verticalpadding="2" 
                      horizontalpadding="2" 
                      font-underline="False"
                      font-names="Tahoma" 
                      font-size="8pt" 
                      font-italic="False" 
                      font-bold="False">
           </nodestyle>
           <rootnodestyle font-underline="False" font-italic="False" font-bold="False">
           </rootnodestyle>
       </asp:treeview>
       <asp:xmldatasource id="XmlDataSource1" runat="server" datafile="Data.xml">
       </asp:xmldatasource>
   </form>

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

 <genre name="fiction">
   <book ISBN="10-000000-001">
     <title>title 1</title>
     <price>12.95</price>
     <comments>
       <userComment rating="4">
          comment 1
       </userComment>
       <userComment rating="2">
          comment 2
       </userComment>
     </comments>
   </book>
 </genre>

</bookstore></source>


Tree view event

   <source lang="csharp">

<%@ page language="C#" %> <%@ import namespace="System.IO" %> <script runat="server" language="c#"> void TreeView1_TreeNodePopulate(object sender, System.Web.UI.WebControls.TreeNodeEventArgs e) {

   if (e.Node.ChildNodes.Count == 0) {    
       this.LoadChildNodes(e.Node);
   }

}

private void LoadChildNodes(TreeNode node) {

   DirectoryInfo directory;
   if (node.ValuePath.Length == 0) {
       directory = new DirectoryInfo(node.Value);
   } else {
       directory = new DirectoryInfo(node.ValuePath);
   }
   foreach(DirectoryInfo subDirectory in directory.GetDirectories()) {
       TreeNode subNode = new TreeNode(subDirectory.Name);
       subNode.PopulateOnDemand = true;
       subNode.SelectAction = TreeNodeSelectAction.SelectExpand;
       node.ChildNodes.Add(subNode);
   }

} </script>

<html> <head runat="server">

   <title>Untitled Page</title>

</head> <body>

   <form runat="server">
       <asp:treeview id="TreeView1" 
                     runat="server" 
                     font-underline="False" 
                     font-names="Tahoma"
                     font-size="8pt" 
                     font-italic="False" 
                     font-bold="False" 
                     imageset="XP_Explorer"
                     forecolor="Black" 
                     nodeindent="15" 
                     ontreenodepopulate="TreeView1_TreeNodePopulate">
           <selectednodestyle backcolor="#B5B5B5" 
                              font-underline="False" 
                              font-italic="False"
                              font-bold="False">
           </selectednodestyle>
           <hovernodestyle forecolor="#6666AA" 
                           font-underline="True" 
                           font-italic="False" 
                           font-bold="False">
           </hovernodestyle>
           <parentnodestyle font-underline="False" font-italic="False" font-bold="False">
           </parentnodestyle>
           <leafnodestyle font-underline="False" font-italic="False" font-bold="False">
           </leafnodestyle>
           <nodes>
               <asp:treenode checked="True" 
                             value="c:\" 
                             populateondemand="True" 
                             showcheckbox="False"
                             selectaction="SelectExpand" 
                             selected="True" 
                             text="Drive C:\">
               </asp:treenode>
           </nodes>
           <nodestyle forecolor="Black" 
                      verticalpadding="2" 
                      horizontalpadding="2" 
                      font-underline="False"
                      font-names="Tahoma" 
                      font-size="8pt" 
                      font-italic="False" 
                      font-bold="False">
           </nodestyle>
           <rootnodestyle font-underline="False" font-italic="False" font-bold="False">
           </rootnodestyle>
       </asp:treeview>
   </form>

</body> </html></source>


Tree view style

   <source lang="csharp">

<%@ page language="VB" %> <script runat="server"> </script> <html> <head runat="server">

   <title>Untitled Page</title>

</head> <body>

   <form runat="server">
       <asp:treeview id="TreeView1" 
                     runat="server" 
                     font-underline="False" 
                     font-names="Verdana"
                     font-size="8pt" 
                     font-italic="False" 
                     font-bold="False" 
                     imageset="MSDN" 
                     forecolor="#000000"
                     nodeindent="16" 
                     backcolor="#EEEEEE">
           <selectednodestyle verticalpadding="1" 
                              bordercolor="#999999" 
                              horizontalpadding="3"
                              backcolor="#FFFFFF" 
                              font-underline="False" 
                              font-italic="False" 
                              font-bold="False"
                              borderwidth="1px" 
                              borderstyle="Solid">
           </selectednodestyle>
           <hovernodestyle verticalpadding="1" 
                           bordercolor="#999999" 
                           horizontalpadding="3" 
                           backcolor="#C7C7C7"
                           font-underline="True" 
                           font-italic="False" 
                           font-bold="False" 
                           borderwidth="1px"
                           borderstyle="Solid">
           </hovernodestyle>
           <parentnodestyle font-underline="False" font-italic="False" font-bold="False">
           </parentnodestyle>
           <leafnodestyle font-underline="False" font-italic="False" font-bold="False">
           </leafnodestyle>
           <nodes>
               <asp:treenode checked="True" 
                             value="My Root Element" 
                             expanded="True" 
                             text="My Root Element">
                   <asp:treenode value="My Child Element" text="My Child Element">
                   </asp:treenode>
                   <asp:treenode checked="True" 
                                 value="Another Child" 
                                 expanded="True" 
                                 showcheckbox="False"
                                 selectaction="SelectExpand" 
                                 selected="True" 
                                 text="Another Child">
                       <asp:treenode value="A Childs Child" 
                                     selectaction="None" 
                                     text="A Childs Child">
                       </asp:treenode>
                   </asp:treenode>
               </asp:treenode>
           </nodes>
           <nodestyle forecolor="#000000" 
                      verticalpadding="2" 
                      nodespacing="1" 
                      horizontalpadding="4"
                      font-underline="False" 
                      font-names="Verdana" 
                      font-size="8pt" 
                      font-italic="False"
                      font-bold="False">
           </nodestyle>
           <rootnodestyle font-underline="False" font-italic="False" font-bold="False">
           </rootnodestyle>
       </asp:treeview> 
   </form>

</body> </html></source>


Using the TreeView Control

   <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 Declare</title>

</head> <body>

   <form id="form1" runat="server">
   <asp:TreeView
       id="TreeView1"
       Runat="server">
       <Nodes>
       <asp:TreeNode
           Text="Home"
           NavigateUrl="~/Default.aspx">
           <asp:TreeNode
               Text="Products">
               <asp:TreeNode
                   Text="First Product"
                   NavigateUrl="~/Products/FirstProduct.aspx" />
               <asp:TreeNode
                   Text="Second Product"
                   NavigateUrl="~/Products/SecondProduct.aspx" />
          </asp:TreeNode>
          <asp:TreeNode
              Text="Services">
              <asp:TreeNode
                  Text="First Service"
                  NavigateUrl="~/Services/FirstService.aspx" />
              <asp:TreeNode
                  Text="Second Service"
                  NavigateUrl="~/Services/SecondService.aspx" />
           </asp:TreeNode>
       </asp:TreeNode>
       </Nodes>
   </asp:TreeView>
   </form>

</body> </html></source>