TreeView,TreeNode,TreeNodeCollection
摘自:MSDN 1. TreeView TreeView 控件由節(jié)點(diǎn)組成,。樹(shù)中的每一項(xiàng)稱為一個(gè)節(jié)點(diǎn)并由 TreeNode 對(duì)象表示,。包含其他節(jié)點(diǎn)的節(jié)點(diǎn)稱為“父節(jié)點(diǎn)”。包含在其他節(jié)點(diǎn)中的節(jié)點(diǎn)稱為“子節(jié)點(diǎn)”,。沒(méi)有任何子節(jié)點(diǎn)的節(jié)點(diǎn)稱為“葉節(jié)點(diǎn)”,。不被任何其他節(jié)點(diǎn)包含并且是所有其他節(jié)點(diǎn)的上級(jí)節(jié)點(diǎn)的節(jié)點(diǎn)稱為“根節(jié)點(diǎn)”。一個(gè)節(jié)點(diǎn)可以同時(shí)是父節(jié)點(diǎn)和子節(jié)點(diǎn),,但是不能同時(shí)為根節(jié)點(diǎn),、父節(jié)點(diǎn)和葉節(jié)點(diǎn)。節(jié)點(diǎn)為根節(jié)點(diǎn),、父節(jié)點(diǎn)還是葉節(jié)點(diǎn)決定著節(jié)點(diǎn)的幾種可視化屬性和行為屬性,。 典型的樹(shù)只有一個(gè)根節(jié)點(diǎn),但 TreeView 控件允許您向樹(shù)結(jié)構(gòu)中添加多個(gè)根節(jié)點(diǎn),。如果希望在顯示項(xiàng)列表的同時(shí)不顯示單個(gè)的主根節(jié)點(diǎn)(例如顯示產(chǎn)品類別列表),,那么此功能將十分有用,。 節(jié)點(diǎn)主要在兩個(gè)屬性中存儲(chǔ)數(shù)據(jù):Text 屬性和 Value 屬性。在 TreeView 控件中顯示 Text 屬性的值,,而 Value 屬性用于存儲(chǔ)有關(guān)節(jié)點(diǎn)的所有其他數(shù)據(jù),,如用于處理回發(fā)事件的數(shù)據(jù)。節(jié)點(diǎn)還在 ValuePath 屬性中存儲(chǔ)從該節(jié)點(diǎn)到其根節(jié)點(diǎn)的路徑,。ValuePath 屬性指示節(jié)點(diǎn)相對(duì)于根節(jié)點(diǎn)的位置,。 2. TreeNode TreeNode 對(duì)象由以下四個(gè)用戶界面 (UI) 元素組成,可以自定義或隱藏這些元素:
可以通過(guò)設(shè)置 TreeView 類的 ExpandImageUrl,、CollapseImageUrl 和 NoExpandImageUrl 屬性,,指定可展開(kāi)、可折疊和不可展開(kāi)的節(jié)點(diǎn)的自定義圖像,。通過(guò)將 TreeView 類的 ShowExpandCollapse 屬性設(shè)置為 false,,甚至可以完全隱藏展開(kāi)節(jié)點(diǎn)的指示圖標(biāo)。 若要在節(jié)點(diǎn)旁顯示復(fù)選框,,請(qǐng)?jiān)O(shè)置 TreeView 類的 ShowCheckBoxes 屬性,。如果 ShowCheckBoxes 屬性設(shè)置為 TreeNodeType.Node 以外的一個(gè)值,將在指定的節(jié)點(diǎn)類型旁顯示復(fù)選框,。通過(guò)設(shè)置節(jié)點(diǎn)的 ShowCheckBox 屬性,,可以有選擇地重寫(xiě)個(gè)別節(jié)點(diǎn)的復(fù)選框。如果顯示復(fù)選框,,可使用 Checked 屬性確定復(fù)選框是否被選中,。 通過(guò)設(shè)置 ImageUrl 屬性可以在節(jié)點(diǎn)中顯示圖像。此圖像顯示在節(jié)點(diǎn)文本旁,。 TreeView 控件中的節(jié)點(diǎn)文本可以處于兩種模式之一:選擇模式或?qū)Ш侥J?。默認(rèn)情況下,會(huì)有一個(gè)節(jié)點(diǎn)處于選定狀態(tài),。若要使一個(gè)節(jié)點(diǎn)處于導(dǎo)航模式,,請(qǐng)將該節(jié)點(diǎn)的 NavigateUrl 屬性值設(shè)置為空字符串 ("") 以外的值。若要使節(jié)點(diǎn)處于選擇模式,,請(qǐng)將節(jié)點(diǎn)的 NavigateUrl 屬性設(shè)置為空字符串,。 默認(rèn)情況下,單擊處于選擇模式的節(jié)點(diǎn)會(huì)將頁(yè)面回發(fā)到服務(wù)器并引發(fā) SelectedNodeChanged 事件。也可以選擇設(shè)置節(jié)點(diǎn)的 SelectAction 屬性,,指定引發(fā)其他事件,。有關(guān)更多信息,請(qǐng)參見(jiàn) SelectAction,。若要確定哪個(gè)節(jié)點(diǎn)在被單擊時(shí)處于選擇模式,,請(qǐng)使用 TreeView 控件的 SelectedNode 屬性。 當(dāng)節(jié)點(diǎn)處于導(dǎo)航模式時(shí),,禁用該節(jié)點(diǎn)的所有選擇事件,。單擊處于導(dǎo)航模式的節(jié)點(diǎn)時(shí),用戶將被定向到指定的 URL,??梢赃x擇設(shè)置 Target 屬性以指定用來(lái)顯示鏈接內(nèi)容的窗口或框架。 TreeNode 類包含一些用于存儲(chǔ)節(jié)點(diǎn)狀態(tài)的屬性,??墒褂?Selected 屬性確定節(jié)點(diǎn)是否被選定。若要確定節(jié)點(diǎn)是否已展開(kāi),,請(qǐng)使用 Expanded 屬性,。DataBound 屬性用于確定節(jié)點(diǎn)是否綁定到數(shù)據(jù)。當(dāng)節(jié)點(diǎn)綁定到數(shù)據(jù)時(shí),,可以使用 DataItem 屬性訪問(wèn)基礎(chǔ)數(shù)據(jù)項(xiàng),。 此類提供了一些屬性,有助于確定一個(gè)節(jié)點(diǎn)相對(duì)于樹(shù)中其他節(jié)點(diǎn)的位置,。使用 Depth 屬性確定節(jié)點(diǎn)的深度,。使用 ValuePath 屬性可以獲得從當(dāng)前節(jié)點(diǎn)到其根節(jié)點(diǎn)的分隔節(jié)點(diǎn)列表。若要確定節(jié)點(diǎn)的父節(jié)點(diǎn),,請(qǐng)使用 Parent 屬性,。使用 ChildNodes 集合訪問(wèn)子節(jié)點(diǎn)。 有時(shí),,靜態(tài)地預(yù)定義樹(shù)結(jié)構(gòu)并不可行,,因?yàn)橛袝r(shí)數(shù)據(jù)大小或自定義內(nèi)容依用戶輸入而定。因此,,TreeView 控件支持動(dòng)態(tài)節(jié)點(diǎn)填充,。在運(yùn)行階段,,可以在展開(kāi)節(jié)點(diǎn)時(shí)填充該節(jié)點(diǎn),。有關(guān)動(dòng)態(tài)節(jié)點(diǎn)填充的更多信息,請(qǐng)參見(jiàn) PopulateOnDemand 屬性,。 有關(guān) TreeNode 的實(shí)例的初始屬性值列表,,請(qǐng)參見(jiàn) TreeNode 構(gòu)造函數(shù)。 3. TreeNodeCollection TreeNodeCollection 類用于存儲(chǔ)和管理 TreeView 控件中的 TreeNode 對(duì)象的集合。TreeView 控件在其兩個(gè)屬性中使用 TreeNodeCollection 類,。在 Nodes 屬性中存儲(chǔ)其根節(jié)點(diǎn),,在 CheckedNodes 屬性中存儲(chǔ)其選定的節(jié)點(diǎn)。TreeNodeCollection 集合也用于 ChildNodes 屬性來(lái)存儲(chǔ)子節(jié)點(diǎn)(如果有的話),。 TreeNodeCollection 類支持多種訪問(wèn)集合中的項(xiàng)的方法:
可以通過(guò)添加和移除 TreeNode 對(duì)象以編程方式管理 TreeNodeCollection。若要在集合中添加節(jié)點(diǎn),,請(qǐng)使用 Add 或 AddAt 方法,。若要從集合中移除節(jié)點(diǎn),請(qǐng)使用 Remove,、RemoveAt 或 Clear 方法,。 4. Sample 自動(dòng)化測(cè)試情況下: 先實(shí)例化treeview,然后 TreeNodeCollection treeNodeCollection = treeView.Nodes; foreach(TreeNode treeNode in treeNodeCollection) { treeNode.select(); if(treeNode.text == "abcd") { Console.WriteLine("The node 'abcd' is found."); 具體處理,; break; } } |
|
來(lái)自: 聽(tīng)風(fēng)的歌00 > 《20111123》