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>
下面的代码示例演示如何使用声明性语法在 控件中创建 TreeNodeTreeView 对象。 此示例在上一示例的框架集中用于显示目录。
<%@ 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 控件允许向树结构添加多个根节点。 如果要显示项列表而不显示单个main根节点(如在产品类别列表中),此功能非常有用。
节点主要将数据存储在两个属性中,即 Text 属性和 属性 Value 。 属性的值 Text 显示在 控件中 TreeView ,属性 Value 用于存储有关节点的任何其他数据,例如用于处理回发事件的数据。 节点还会在 属性中 ValuePath 存储从节点到其根节点的路径。 属性 ValuePath 指示节点相对于根节点的位置。
注意
同一级别的节点必须每个具有属性的唯一值 Value ; TreeView 控件无法区分同一级别具有相同值的不同节点。 在这种情况下,如果用户单击具有重复值的节点,则会选择控件中 TreeView 第一个显示的节点。
对象由以下四个 TreeNode 用户界面组成, (UI) 元素,这些元素可以自定义或隐藏:
用于显示节点是展开、折叠还是不可展开的扩展节点指示器图标。
与节点关联的可选检查框。
可选节点映像。
节点文本。
可以通过设置 ExpandImageUrl类的 、 CollapseImageUrl和 NoExpandImageUrl 属性,为可展开、可折叠和不可展开的 TreeView 节点指示器指定自定义映像。 甚至可以通过将 类的 TreeView 属性设置为 ShowExpandCollapsefalse
来完全隐藏扩展节点指示器图标。
若要在节点旁边显示检查框,请设置 ShowCheckBoxes 类的 TreeView 属性。 当 属性ShowCheckBoxes设置为 以外的TreeNodeType.Node
值时,检查框显示在指定节点类型旁边。 可以通过设置节点的 属性,有选择地替代单个节点的ShowCheckBox检查框。 显示检查框时,使用 Checked 属性确定是否选择了检查框。
可以通过设置 ImageUrl 属性在节点中显示图像。 此图像显示在节点文本旁边。
控件中 TreeView 节点的文本可以处于两种模式之一:选择模式或导航模式。 默认情况下,节点处于选择模式。 若要将节点置于导航模式,请将节点的 NavigateUrl 属性设置为空字符串 (“”) 以外的值。 若要将节点置于选择模式,请将节点的 NavigateUrl 属性设置为空字符串。
注意
某些 Internet 浏览器存在可能影响控件性能 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 |
获取或设置用来显示与节点关联的网页内容的目标窗口或框架。 |
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 对象跟踪对其视图状态的更改。 |