TreeView學習筆記 (轉)

amyz發表於2007-08-15
TreeView學習筆記 (轉)[@more@]

1.什麼是TreeView?:namespace prefix = o ns = "urn:schemas--com::office" />

  TreeView 是一個 ,可以生成用於顯示分層資料的介面

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).建立一個 application,命名為:webcontrols

  (2).建立一個空頁面

  (3).新增名稱空間引用,即新增 “”

  (4).新增@ Register 指令

  即新增:

 

Namespace="Microsoft.Web.UI.WebControls"

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

  (5). 新增文件結構

 

  (6).新增form

  所有 WebControl 元素必須在一個 FO元素中建立

  (7). 新增一個 TreeView 元素。

   

     

   

  (8). 向 TreeView 新增一個 TreeNode。

   

   

  (9). 新增第二個 TreeNode。

   

   

   

   

7. 資料繫結

  TreeView 也支援資料繫結,因此可以生成動態的內容,下面的示例顯示的 TreeView 與前一個示例類似,但沒有使用靜態內容,而是使用了可擴充套件標記語言 (XML) 檔案來提供 UI 的資料來源

 

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

 

book.xml 檔案包含以下內容:

 

 

 

 

 

 

 

 

 

 

8.用 XML 和 SERVER 進行資料繫結

WebControls 元素也可以使用其他 XML 資料提供,如下所示:

 TreeNodeSrc="XML?sql=execute+sp_bookXML+@pid=1" />

該示例使用了一種更高階的技術。TreeNodeSrc 屬性被設定為一個 URL,後者 Microsoft (tm) 上的一個過程來動態生成 XML 資料島。

9.程式設計

前面給出的示例表明,多數情況下編寫一個功能完備的 UI 元素不需要任何程式設計工作。本節簡要介紹一些可用於 TreeView 的簡單的指令碼編寫技術。

TreeView 事件

透過將 AutoPostBack 屬性設定為 true 可以將使用者互動產生的事件導向伺服器。同時處理高階和低階瀏覽器事件時應該使用伺服器端指令碼,因為低階頁面內容中沒有使用 Internet Explorer 5.5 或更高版本中所使用的豐富的 行為。

對於包含 TreeView 的 Web 頁面,使用者的主要互動是展開和摺疊樹中的節點來瀏覽內容。下面的示例程式碼顯示瞭如何使用 在 Web 窗體中處理 onexpand、oncollapse 和 onedind 事件。

void Expand( 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()+")" ;

}

在此指令碼中,需要具有一個 id 為 _label 的元素。

Event Log:

注意:此標記必須放在 TreeView 使用的 FORM 元素內。

可以透過程式設計或使用 TreeView 的屬性將 C# 指令碼中的加入到事件中,如下所示:

onexpand="Expand"

oncollapse="Collapse"

onselectedindexchanged="SelectChange"

autopostback="true"

runat="server">

進行 TreeView 程式設計時經常要使用 onexpand 和 oncollapse 事件。在本示例中,每次節點展開或摺疊時,指令碼都將新增到 div 元素的 innerText 中。

伺服器端包含

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

  <!-- #Include file="nodes.txt" --&gt

前面的示例使用了 nodes.txt 檔案來填充一個 TreeView,下面我們使用包含檔案來填充 TreeView 的兩個單獨的 TreeNode 分支。

 

  <!-- #Include file="Books.txt" --&gt

 

 

  <!-- #Include file="magazines.txt" --&gt

 

與 XML 資料繫結的名稱空間字首規則不同,包含檔案的內容中的元素必須使用與其父元素相同的標記字首。因此,books.txt 和 magazines.txt 檔案的內容應使用 mytree 標記字首。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752019/viewspace-957716/,如需轉載,請註明出處,否則將追究法律責任。

相關文章