天天看點

TreeView學習

TreeView學習

1.什麼是

TreeView?

TreeView

是一個

ASP.NET

伺服器控件,可以生成用于顯示分層資料的使用者界面

2.适用的資料結構:

    适用

分層的資料集、檔案夾視圖以及其他類似的資料結構。

3

.如何實作

TreeView?

   (1)

通過聲明的方式建立

(2)

用戶端或伺服器上通過程式設計以多種方式來實作

4

TreeView

建立方法:

   (1)

手動建立

   (2)

使用

vs.net

中的

TreeView Editor

建立

5

TreeView

元素

   TreeView     

定義一個

TreeView

   TreeNodeType 

定義一個節點類型,适用

TreeView

中的一個或一組節點

   TreeNode     

TreeView

中建立一個節點

注:

   TreeView

TreeNode

TreeNodeType

的容器

這些元素共同定義了數視圖的結構、布局、

觀。

TreeView

不能包含這三種元素之外的任何

HTML

元素

6

編寫簡單的

TreeView

   (1).

建立一個

web application,

命名為:

webcontrols

   (2).

建立一個空頁面

   (3).

添加命名空間引用,即添加

<%@ import namespace="Microsoft.Web.UI.WebControls" %>

   (4).

添加

@ Register

指令

即添加:

          <%@ Register TagPrefix="mytree"

Namespace="Microsoft.Web.UI.WebControls"

Assembly="Microsoft.Web.UI.WebControls,Version=1.0.2.226,Culture=neutral, PublicKeyToken=31bf3856ad364e35" %>

(5).

添加文檔結構

       <HTML>

<HEAD></HEAD>

<BODY></BODY>

</HTML>

   (6).

添加

form

所有

WebControl

元素必須在一個

FORM

元素中建立

<BODY>

<FORM runat="server"></FORM>

</BODY>

   (7).

添加一個

TreeView

元素。

<BODY>

     <FORM runat="server">

<mytree:treeview runat="server"></mytree:treeview>

      </FORM>

</BODY>

     (8).

TreeView

添加一個

TreeNode

<mytree:treeview runat="server">

 <mytree:treenode text="

節點一

">

         </mytree:treenode>

</mytree:treeview>

     (9).

添加第二個

TreeNode

<mytree:treeview runat="server">

          <mytree:treenode text="

節點一

">

<mytree:treenode text="

節點二

">

                </mytree:treenode>

           </mytree:treenode>

</mytree:treeview>

7.

資料綁定

    TreeView 也支援資料綁定,是以可以生成動态的内容,下面的示例顯示的 TreeView 與前一個示例類似,但沒有使用靜态内容,而是使用了可擴充标記語言 (XML) 檔案來提供 UI 的資料源

<booktree:treeview runat="server"  AutoPostBack="true">

 <booktree:treenode Text="book" AutoPostBack=true "

    Expanded="true" TreeNodeSrc="http:// EventArgs/webcontrols/treeview/book.xml">

 </booktree:treenode>

</booktree:treeview>

book.xml

檔案包含以下内容:

<TREENODES>

      <treenode Text="CSharp">

         <treenode Text="Deep inside Csharp"/>

         <treenode Text="Advanced Csharp"/>

         <treenode Text="Extend Csharp"/>

      </treenode>

      <treenode Text="VBdotNet" >

         <treenode Text="vb.net leader"/>

         <treenode Text="From vb to vb.net"/>

         <treenode Text="Dotnet with VB.net"/>

      </treenode>

</TREENODES>

8

.用

XML

SQL Server

進行資料綁定

WebControls

元素也可以使用其他

XML

資料提供程式,如下所示:

<ie:treenode Text="root" type="tree" Expanded="true"

 TreeNodeSrc="http://EventArgs/[email protected]=1" />

該示例使用了一種更進階的技術。

TreeNodeSrc

屬性被設定為一個

URL

,後者執行

Microsoft SQL Server(tm)

資料庫上的一個存儲過程來動态生成

XML

資料島。

9

.程式設計

前面給出的示例表明,多數情況下編寫一個功能完備的

UI

元素不需要任何程式設計工作。本節簡要介紹一些可用于

TreeView

的簡單的腳本編寫技術。

TreeView

事件

通過将

AutoPostBack

屬性設定為

true

可以将使用者互動産生的事件導向伺服器。同時處理進階浏覽器和低級浏覽器事件時應該使用伺服器端腳本,因為低級頁面内容中沒有使用

Internet Explorer 5.5

或更高版本中所使用的豐富的

DHTML

行為。

對于包含

TreeView

Web

頁面,使用者的主要互動是展開和折疊樹中的節點來浏覽内容。下面的示例代碼顯示了如何使用

C#

Web

窗體中處理

onexpand

oncollapse

onselectedindexchange

事件。

<script language="C#" runat="server">

void Expand(object sender, TreeViewClickEventArgs e)

{

 mylabel.InnerText += "

已展開

(

節點索引

= " + e.Node.ToString() + ")";

}

void Collapse(object sender, TreeViewClickEventArgs e)

{

 mylabel.InnerText += "

已折疊

(

節點索引

= " + e.Node.ToString() + ")";

}

void SelectChange(Object sender, TreeViewSelectEventArgs e)

{

 mylabel.InnerText += "

已選中

" + e.NewNode.ToString() + " (

舊節點

索引

=" + e.OldNode.ToString()+")" ;

}

</script>

在此腳本中,需要具有一個

id

_label

的元素。

<div id=_label runat="server">Event Log: </div>

注意:此标記必須放在

TreeView

使用的

FORM

元素内。

可以通過程式設計或使用

TreeView

的屬性将

C#

腳本中的函數加入到事件中,如下所示:

<mytree:treeview

onexpand="Expand"

oncollapse="Collapse"

onselectedindexchanged="SelectChange"

autopostback="true"

runat="server">

</mytree:treeview>

進行

TreeView

程式設計時經常要使用

onexpand

oncollapse

事件。在本示例中,每次節點展開或折疊時,腳本都将添加到

div

元素的

innerText

中。

伺服器端包含

由于

WebControls

是用

ASP.NET

建立的,是以也支援伺服器端“包含”。下面的示例顯示了其實作方法。

<mytree:treeview runat="server">

    <!-- #Include file="nodes.txt" -->

</mytree:treeview>

前面的示例使用了

nodes.txt

檔案來填充一個

TreeView

,下面我們使用包含檔案來填充

TreeView

的兩個單獨的

TreeNode

分支。

<mytree:treeview runat="server">

    <mytree:treenode Text="

書籍

" >

        <!-- #Include file="Books.txt" -->

    </mytree:treenode>

    <mytree:treenode Text="

雜志

" >

        <!-- #Include file="magazines.txt" -->

    </mytree:treenode>

</mytree:treeview>

XML

資料綁定的命名空間字首規則不同,包含檔案的内容中的元素必須使用與其父元素相同的标記字首。是以,

books.txt

magazines.txt

檔案的内容應使用

mytree

标記字首。

繼續閱讀