TreeNode 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
表示 TreeView 控制項中的節點。
public ref class TreeNode : ICloneable, System::Web::UI::IStateManager
public class TreeNode : ICloneable, System.Web.UI.IStateManager
type TreeNode = class
interface IStateManager
interface ICloneable
Public Class TreeNode
Implements ICloneable, IStateManager
- 繼承
-
TreeNode
- 實作
範例
下列程式碼範例示範如何設定下一個程式碼範例的框架。
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>TreeView Frameset Example</title>
</head>
<frameset cols="30%, 75%">
<frame title="MenuFrame" name="Menu" src="TreeViewFramecs.aspx"/>
<frame title="ContentFrame" name="Content" src="Home.aspx"/>
</frameset>
</html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>TreeView Frameset Example</title>
</head>
<frameset cols="30%, 75%">
<frame title="MenuFrame" name="Menu" src="TreeViewFramevb.aspx"/>
<frame title="ContentFrame" name="Content" src="Home.aspx"/>
</frameset>
</html>
下列程式碼範例示範如何使用宣告式語法在 控制項中 TreeView 建立 TreeNode 物件。 此範例用於上一個範例的框架組內,以顯示目錄。
<%@ Page Language="C#" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>TreeView Declarative Syntax Example</title>
</head>
<body>
<form id="form1" runat="server">
<h3>TreeView Declarative Syntax Example</h3>
<asp:TreeView id="SampleTreeView"
runat="server">
<Nodes>
<asp:TreeNode Value="Home"
NavigateUrl="Home.aspx"
Text="Home"
Target="Content"
Expanded="True">
<asp:TreeNode Value="Page 1"
NavigateUrl="Page1.aspx"
Text="Page1"
Target="Content">
<asp:TreeNode Value="Section 1"
NavigateUrl="Section1.aspx"
Text="Section 1"
Target="Content"/>
</asp:TreeNode>
<asp:TreeNode Value="Page 2"
NavigateUrl="Page2.aspx"
Text="Page 2"
Target="Content">
</asp:TreeNode>
</asp:TreeNode>
</Nodes>
</asp:TreeView>
</form>
</body>
</html>
<%@ Page Language="VB" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>TreeView Declarative Syntax Example</title>
</head>
<body>
<form id="form1" runat="server">
<h3>TreeView Declarative Syntax Example</h3>
<asp:TreeView id="SampleTreeView"
runat="server">
<Nodes>
<asp:TreeNode Value="Home"
NavigateUrl="Home.aspx"
Text="Home"
Target="Content"
Expanded="True">
<asp:TreeNode Value="Page 1"
NavigateUrl="Page1.aspx"
Text="Page1"
Target="Content">
<asp:TreeNode Value="Section 1"
NavigateUrl="Section1.aspx"
Text="Section 1"
Target="Content"/>
</asp:TreeNode>
<asp:TreeNode Value="Page 2"
NavigateUrl="Page2.aspx"
Text="Page 2"
Target="Content">
</asp:TreeNode>
</asp:TreeNode>
</Nodes>
</asp:TreeView>
</form>
</body>
</html>
備註
控制項 TreeView 是由節點所組成。 樹狀結構中的每個專案都會稱為節點,並以 物件表示 TreeNode 。 包含其他節點的節點稱為 父節點。 另一個節點所包含的節點稱為 子節點。 沒有子節點的節點稱為 分葉節點。 其他節點不包含的節點,但是所有其他節點的上階節點是 根節點。 節點可以是父節點和子節點,但根節點、父節點和分葉節點互斥。 節點的數個視覺和行為屬性取決於節點是否為 根節點、 父節點或 分葉 節點。
雖然一般樹狀結構只有一個根節點,但 TreeView 控制項可讓您將多個根節點新增至樹狀結構。 當您想要顯示專案清單而不顯示單一主要根節點時,如同產品類別清單一樣,這非常有用。
節點主要會將資料儲存在兩個屬性中: Text 屬性和 Value 屬性。 屬性的值 Text 會顯示在 控制項中 TreeView ,而 Value 屬性用來儲存節點的任何其他資料,例如用於處理回傳事件的資料。 節點也會將節點的路徑儲存到 屬性中的 ValuePath 根節點。 屬性 ValuePath 表示節點相對於根節點的位置。
注意
相同層級的節點必須各有屬性的唯一值 Value ; TreeView 控制項無法區分相同層級具有相同值的不同節點。 在此案例中,如果使用者按一下具有重複值的節點,則會選取控制項中 TreeView 第一個出現的節點。
物件是由下列四個 TreeNode 使用者介面所組成, (UI) 元素,這些元素可以自訂或隱藏:
擴充節點指標圖示,用來顯示節點是展開、折迭還是不可展開的。
與節點相關聯的選擇性核取方塊。
選擇性節點映射。
節點文字。
您可以藉由設定 ExpandImageUrl 類別的 TreeView 、 CollapseImageUrl 和 屬性,為可展開、可折迭和 NoExpandImageUrl 不可展開的節點指標指定自訂映射。 擴充節點指標圖示甚至可以透過將 類別的 TreeView 屬性設定 ShowExpandCollapse 為 false
來完全隱藏。
若要顯示節點旁的核取方塊,請設定 ShowCheckBoxes 類別的 TreeView 屬性。
ShowCheckBoxes當 屬性設定為 以外的 TreeNodeType.Node
值時,核取方塊會顯示在指定的節點類型旁邊。 您可以藉由設定節點的 屬性,選擇性地覆寫個別節點的 ShowCheckBox 核取方塊。 顯示覆選框時,請使用 Checked 屬性來判斷是否已選取核取方塊。
您可以藉由設定 ImageUrl 屬性,在節點中顯示影像。 此影像會顯示在節點文字旁邊。
控制項中節點的 TreeView 文字可以是兩種模式之一:選取模式或瀏覽模式。 根據預設,節點處於選取模式。 若要將節點放入瀏覽模式,請將節點的 NavigateUrl 屬性設定為空字串以外的值, (「」) 。 若要將節點放入選取模式,請將節點的 NavigateUrl 屬性設定為空字串。
注意
某些網際網路瀏覽器有可能會影響控制項效能 TreeView 的限制。 例如,Microsoft Internet Explorer 6.0 的 URL 字元限制為 2067 個字元。。 如果節點 URL 中的字元數目大於該數位,則展開該節點將會失敗,而且不會擲回例外狀況。
根據預設,按一下處於選取模式的節點會將頁面傳回伺服器並引發 SelectedNodeChanged 事件。 您可以藉由設定節點的 SelectAction
屬性,選擇性地指定要引發的不同事件。 如需詳細資訊,請參閱SelectAction。 若要判斷在選取模式中按一下哪個節點,請使用 SelectedNode 控制項的 TreeView 屬性。
當節點處於瀏覽模式時,該節點的所有選取事件都會停用。 按一下瀏覽模式中的節點會將使用者導向至指定的 URL。 您可以選擇性地設定 Target 屬性,以指定要在其中顯示連結內容的視窗或框架。
類別 TreeNode 包含數個用來儲存節點狀態的屬性。 Selected使用 屬性來判斷是否已選取節點。 若要判斷節點是否已展開,請使用 Expanded 屬性。 屬性 DataBound 是用來判斷節點是否系結至資料。 當節點系結至資料時,您可以使用 屬性來存取基礎資料項目 DataItem 。
類別提供數個屬性,可協助判斷節點相對於樹狀結構中其他節點的位置。 Depth使用 屬性來判斷節點的深度。 您可以使用 屬性,從目前節點取得節點到其根節點 ValuePath 的分隔清單。 若要判斷節點的父節點,請使用 Parent 屬性。 子節點是使用 集合來 ChildNodes 存取。
有時候,由於相依于使用者輸入的資料大小或自訂內容,靜態預先定義樹狀結構並不實用。 因此, TreeView 控制項支援動態節點母體擴展。 當節點展開時,可以在執行時間填入節點。 請注意,如果您保存非同步建立的節點,您可以取得非預期的行為。 例如,如果您使用背景背景工作執行緒以非同步方式填入節點,則節點樹狀結構可能不會立即填入,不過控制項會繼續進行頁面生命週期的其餘部分。 在回傳時,延遲建立節點可能會導致控制項的檢視狀態載入但節點樹狀結構未完全填入時發生問題。 如需動態節點母體擴展的詳細資訊,請參閱 PopulateOnDemand 屬性。
如需 實例 TreeNode 的初始屬性值清單,請參閱 建 TreeNode 構函式。
建構函式
TreeNode() |
不使用文字或值,初始化 TreeNode 類別的新執行個體。 |
TreeNode(String) |
使用指定的文字,來初始化 TreeNode 類別的新執行個體。 |
TreeNode(String, String) |
使用指定的文字和值,初始化 TreeNode 類別的新執行個體。 |
TreeNode(String, String, String) |
使用指定的文字、值和影像 URL,初始化 TreeNode 類別的新執行個體。 |
TreeNode(String, String, String, String, String) |
使用指定的文字、值、影像 URL、巡覽 URL 和目標,初始化 TreeNode 類別的新執行個體。 |
TreeNode(TreeView, Boolean) |
使用指定的擁有人,初始化 TreeNode 類別的新執行個體。 |
屬性
Checked |
取得或設定值,表示是否已選取節點的核取方塊。 |
ChildNodes |
取得包含目前節點之第一層子節點的 TreeNodeCollection 集合。 |
DataBound |
取得值,表示節點是否透過資料繫結建立。 |
DataItem |
取得繫結至控制項的資料項目。 |
DataPath |
取得繫結至節點之資料的路徑。 |
Depth |
取得節點的深度。 |
Expanded |
取得或設定值,表示節點是否已展開。 |
ImageToolTip |
取得或設定節點旁顯示之影像的工具提示文字。 |
ImageUrl |
取得或設定節點旁顯示之影像的 URL。 |
IsTrackingViewState |
取得值,表示節點是否正在將變更儲存至其檢視狀態。 |
NavigateUrl |
取得或設定在按一下節點時所巡覽至的 URL。 |
Parent |
取得目前節點的父節點。 |
PopulateOnDemand |
取得或設定值,表示節點是否動態填入。 |
SelectAction |
取得或設定在選取節點時要引發的事件。 |
Selected |
取得或設定值,表示節點是否已選取。 |
ShowCheckBox |
取得或設定值,表示節點旁是否顯示核取方塊。 |
Target |
取得或設定其中要顯示與節點關聯之 Web 網頁內容的目標視窗或框架。 |
Text |
取得或設定為 TreeView 控制項中之節點顯示的文字。 |
ToolTip |
取得或設定節點的工具提示文字。 |
Value |
取得或設定非顯示值,這個值用於儲存節點相關的任何其他資料,例如用於處理回傳事件的資料。 |
ValuePath |
取得從根節點至目前節點的路徑。 |
方法
Clone() | |
Collapse() |
摺疊目前的樹狀節點。 |
CollapseAll() |
摺疊目前節點及其所有子節點。 |
Equals(Object) |
判斷指定的物件是否等於目前的物件。 (繼承來源 Object) |
Expand() |
展開目前的樹狀節點。 |
ExpandAll() |
展開目前節點及其所有子節點。 |
GetHashCode() |
做為預設雜湊函式。 (繼承來源 Object) |
GetType() |
取得目前執行個體的 Type。 (繼承來源 Object) |
LoadViewState(Object) |
載入先前儲存之節點的檢視狀態。 |
MemberwiseClone() |
建立目前 Object 的淺層複製。 (繼承來源 Object) |
RenderPostText(HtmlTextWriter) |
允許控制項開發人員將其他呈現加入至節點。 |
RenderPreText(HtmlTextWriter) |
允許控制項開發人員將其他呈現加入至節點。 |
SaveViewState() |
儲存節點的目前檢視狀態。 |
Select() |
選取 TreeView 控制項中的目前節點。 |
ToggleExpandState() |
在節點的展開和摺疊狀態之間轉換。 |
ToString() |
傳回代表目前物件的字串。 (繼承來源 Object) |
TrackViewState() |
標記起點,從該處開始追蹤並儲存節點的檢視狀態變更。 |
明確介面實作
ICloneable.Clone() |
建立 TreeNode 物件的複本。 |
IStateManager.IsTrackingViewState |
如需這個成員的說明,請參閱 IsTrackingViewState。 |
IStateManager.LoadViewState(Object) |
載入節點先前儲存的檢視狀態。 |
IStateManager.SaveViewState() |
將檢視狀態變更儲存至 Object。 |
IStateManager.TrackViewState() |
指示 TreeNode 物件追蹤其檢視狀態的變更。 |