TreeNodeBinding 类
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
定义数据项和 TreeView 控件中它所绑定到的节点之间的关系。
public ref class TreeNodeBinding sealed : ICloneable, System::Web::UI::IDataSourceViewSchemaAccessor, System::Web::UI::IStateManager
public sealed class TreeNodeBinding : ICloneable, System.Web.UI.IDataSourceViewSchemaAccessor, System.Web.UI.IStateManager
type TreeNodeBinding = class
interface IStateManager
interface ICloneable
interface IDataSourceViewSchemaAccessor
Public NotInheritable Class TreeNodeBinding
Implements ICloneable, IDataSourceViewSchemaAccessor, IStateManager
- 继承
-
TreeNodeBinding
- 实现
示例
下表显示了一些示例树节点绑定声明。
示例绑定 | 说明 |
---|---|
<asp:TreeNodeBinding TextField="Title" ValueField= "ID"/> |
将 Text 树中所有节点的和 Value 属性分别绑定到 Title 数据源的字段 ID 。 所有节点都使用此树节点绑定声明, DataMember 因为未设置和 Depth 属性。 |
<asp:TreeNodeBinding DataMember= "Book" TextField= "Title" ValueField= "ID"/> |
将Text树中所有节点的和Value属性分别绑定到Title 数据源中数据项的Book 字段ID 。 |
<asp:TreeNodeBinding Depth="2" TextField= "Title" ValueField= "ID"/> |
将 Text 树中深度为 2 的所有节点的和 Value 属性分别绑定到 Title 数据源中数据项的字段 ID 。 |
<asp:TreeNodeBinding DataMember="Book" Depth= "2" TextField= "Title" ValueField= "ID" ImageUrl= "Image.jpg"> |
将Text树中深度为 2 的所有节点的和Value属性分别绑定到Title 数据源中数据项的Book 字段ID 。 此外,将 ImageUrl 节点的属性绑定到静态值。 |
本部分包含三个代码示例。 第一个代码示例演示如何以声明方式使用 TreeNodeBinding 对象来定义节点和数据项之间的关系。 第二个代码示例演示如何以编程方式使用 TreeNodeBinding 对象来定义节点和数据项之间的关系。 第三个代码示例为第一个和第二个代码示例提供示例 XML 数据。
下面的代码示例演示如何以声明方式使用 TreeNodeBinding 对象来定义节点和数据项之间的关系。 若要使此示例正常工作,必须将示例 XML 数据(在此代码示例之后提供)复制到名为Book.xml的文件。
<%@ 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 XML Data Binding Example</title>
</head>
<body>
<form id="form1" runat="server">
<h3>TreeView XML Data Binding Example</h3>
<asp:TreeView id="BookTreeView"
DataSourceID="BookXmlDataSource"
runat="server">
<DataBindings>
<asp:TreeNodeBinding DataMember="Book" TextField="Title"/>
<asp:TreeNodeBinding DataMember="Chapter" TextField="Heading"/>
<asp:TreeNodeBinding DataMember="Section" TextField="Heading"/>
</DataBindings>
</asp:TreeView>
<asp:XmlDataSource id="BookXmlDataSource"
DataFile="Book.xml"
runat="server">
</asp:XmlDataSource>
</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 XML Data Binding Example</title>
</head>
<body>
<form id="form1" runat="server">
<h3>TreeView XML Data Binding Example</h3>
<asp:TreeView id="BookTreeView"
DataSourceID="BookXmlDataSource"
runat="server">
<DataBindings>
<asp:TreeNodeBinding DataMember="Book" TextField="Title"/>
<asp:TreeNodeBinding DataMember="Chapter" TextField="Heading"/>
<asp:TreeNodeBinding DataMember="Section" TextField="Heading"/>
</DataBindings>
</asp:TreeView>
<asp:XmlDataSource id="BookXmlDataSource"
DataFile="Book.xml"
runat="server">
</asp:XmlDataSource>
</form>
</body>
</html>
下面的代码示例演示如何以编程方式使用 TreeNodeBinding 对象来定义节点和数据项之间的关系。 若要使此示例正常工作,必须将下一个代码示例中提供的示例 XML 数据复制到名为Book.xml的文件。
<%@ Page Language="C#" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
void Page_Load(Object sender, EventArgs e)
{
// Create a new TreeView control.
TreeView NewTree = new TreeView();
// Set the properties of the TreeView control.
NewTree.ID = "BookTreeView";
NewTree.DataSourceID = "BookXmlDataSource";
// Create the tree node binding relationship.
// Create the root node binding.
TreeNodeBinding RootBinding = new TreeNodeBinding();
RootBinding.DataMember = "Book";
RootBinding.TextField = "Title";
// Create the parent node binding.
TreeNodeBinding ParentBinding = new TreeNodeBinding();
ParentBinding.DataMember = "Chapter";
ParentBinding.TextField = "Heading";
// Create the leaf node binding.
TreeNodeBinding LeafBinding = new TreeNodeBinding();
LeafBinding.DataMember = "Section";
LeafBinding.TextField = "Heading";
// Add bindings to the DataBindings collection.
NewTree.DataBindings.Add(RootBinding);
NewTree.DataBindings.Add(ParentBinding);
NewTree.DataBindings.Add(LeafBinding);
// Manually register the event handler for the SelectedNodeChanged event.
NewTree.SelectedNodeChanged += new EventHandler(this.Node_Change);
// Add the TreeView control to the Controls collection of the PlaceHolder control.
ControlPlaceHolder.Controls.Add(NewTree);
}
void Node_Change(Object sender, EventArgs e)
{
// Retrieve the TreeView control from the Controls collection of the PlaceHolder control.
TreeView LocalTree = (TreeView)ControlPlaceHolder.FindControl("BookTreeView");
// Display the selected node.
Message.Text = "You selected: " + LocalTree.SelectedNode.Text;
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>TreeView Constructor Example</title>
</head>
<body>
<form id="form1" runat="server">
<h3>TreeView Constructor Example</h3>
<asp:PlaceHolder id="ControlPlaceHolder" runat="server">
</asp:PlaceHolder>
<asp:XmlDataSource id="BookXmlDataSource"
DataFile="Book.xml"
runat="server">
</asp:XmlDataSource>
<br /><br />
<asp:Label id="Message" runat="server"/>
</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">
<script runat="server">
Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs)
' Create a new TreeView control.
Dim NewTree As New TreeView
' Set the properties of the TreeView control.
NewTree.ID = "BookTreeView"
NewTree.DataSourceID = "BookXmlDataSource"
' Create the tree node binding relationship.
' Create the root node binding.
Dim RootBinding As New TreeNodeBinding
RootBinding.DataMember = "Book"
RootBinding.TextField = "Title"
' Create the parent node binding.
Dim ParentBinding As New TreeNodeBinding
ParentBinding.DataMember = "Chapter"
ParentBinding.TextField = "Heading"
' Create the leaf node binding.
Dim LeafBinding As New TreeNodeBinding
LeafBinding.DataMember = "Section"
LeafBinding.TextField = "Heading"
' Add bindings to the DataBindings collection.
NewTree.DataBindings.Add(RootBinding)
NewTree.DataBindings.Add(ParentBinding)
NewTree.DataBindings.Add(LeafBinding)
' Manually register the event handler for the SelectedNodeChanged event.
AddHandler NewTree.SelectedNodeChanged, AddressOf Node_Change
' Add the TreeView control to the Controls collection of the PlaceHolder control.
ControlPlaceHolder.Controls.Add(NewTree)
End Sub
Sub Node_Change(ByVal sender As Object, ByVal e As EventArgs)
' Retrieve the TreeView control from the Controls collection of the PlaceHolder control.
Dim LocalTree As TreeView = CType(ControlPlaceHolder.FindControl("BookTreeView"), TreeView)
' Display the selected node.
Message.Text = "You selected: " & LocalTree.SelectedNode.Text
End Sub
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>TreeView Constructor Example</title>
</head>
<body>
<form id="form1" runat="server">
<h3>TreeView Constructor Example</h3>
<asp:PlaceHolder id="ControlPlaceHolder" runat="server">
</asp:PlaceHolder>
<asp:XmlDataSource id="BookXmlDataSource"
DataFile="Book.xml"
runat="server">
</asp:XmlDataSource>
<br /><br />
<asp:Label id="Message" runat="server"/>
</form>
</body>
</html>
下面的代码示例提供上述代码示例的示例 XML 数据。
<Book Title="Book Title">
<Chapter Heading="Chapter 1">
<Section Heading="Section 1">
</Section>
<Section Heading="Section 2">
</Section>
</Chapter>
<Chapter Heading="Chapter 2">
<Section Heading="Section 1">
</Section>
</Chapter>
</Book>
注解
TreeView当控件绑定到数据源时,其中每个数据项包含多个字段 ((如具有多个属性的 XML 元素) ),则默认情况下,节点将显示数据项方法返回ToString
的值。 在 XML 元素的情况下,节点显示元素名称,该名称显示树的基础结构,但不非常有用。 可以通过指定树节点绑定将节点的属性绑定到特定字段。 对象 TreeNodeBinding 定义每个数据项及其绑定到的节点之间的关系。
该 TreeView 控件将其 TreeNodeBinding 对象存储在属性中 DataBindings ,并将绑定应用于数据源,以在树层次结构和数据源层次结构之间创建一对一关系。 对于数据源中的每个数据项,控件 TreeView 会尝试将数据项与对象 TreeNodeBinding 匹配,以便创建相应的 TreeNode 对象。
创建 TreeNodeBinding 对象时,必须指定绑定的条件。 条件指示数据项何时应绑定到节点。 可以指定 Depth 或 DataMember 属性或两个属性。 通过同时指定两者,性能略有提升。 节点深度指定绑定的节点级别。 例如,以下TreeNodeBinding声明将数据源的字段和ID
字段分别绑定到Name
Text深度为 0 的所有节点的和Value属性:
<asp:TreeNodeBinding Depth="0" TextField="Name" ValueField="ID">
数据成员指定基础数据源中的数据项的类型,但可以根据数据源表示不同的信息。 由) 接口表示的分层数据源中的每个数据项 (System.Web.UI.IHierarchyData 公开一个 IHierarchyData.Type 属性,该属性指定数据项的类型。 例如,XML 元素的数据成员指定元素的名称。 当数据源包含多个数据类型时,数据成员指定要使用的数据项类型。 以下 TreeNodeBinding 声明将 <Book>
控件的 XmlDataSource 元素绑定到树中的所有节点,而不考虑层次结构中的位置:
<asp:TreeNodeBinding DataMember="Book" TextField="Title" ValueField= "ISBN">
建立绑定条件后,可以绑定可绑定到值的对象的属性 TreeNode 。 可以绑定到数据项的字段或静态值。 绑定到静态值时,应用该对象的所有 TreeNode 对象 TreeNodeBinding 共享相同的值。
备注
可以通过直接在节点中设置相应的属性来选择性地替代对象中的 TreeNode 绑定属性。
下表列出了类的属性 TreeNodeBinding ,该属性允许将对象的属性 TreeNode 绑定到数据项的字段。
属性 | 说明 |
---|---|
ImageUrlField | 要绑定到 ImageUrl 对象的属性的 TreeNode 字段。 |
ImageToolTipField | 要绑定到 ImageToolTip 对象的属性的 TreeNode 字段。 |
NavigateUrlField | 要绑定到 NavigateUrl 对象的属性的 TreeNode 字段。 |
TextField | 要绑定到 Text 对象的属性的 TreeNode 字段。 |
ToolTipField | 要绑定到 ToolTip 对象的属性的 TreeNode 字段。 |
ValueField | 要绑定到 Value 对象的属性的 TreeNode 字段。 |
下表列出了允许将对象的属性绑定到静态值的类的属性TreeNodeBindingTreeNode。
属性 | 说明 |
---|---|
ImageUrl | 要绑定到 ImageUrl 对象的属性的 TreeNode 静态值。 |
ImageToolTip | 要绑定到 ImageToolTip 对象的属性的 TreeNode 静态值。 |
NavigateUrl | 要绑定到 NavigateUrl 对象的属性的 TreeNode 静态值。 |
PopulateOnDemand | 要绑定到 PopulateOnDemand 对象的属性的 TreeNode 静态值。 |
SelectAction | 要绑定到 SelectAction 对象的属性的 TreeNode 静态值。 |
ShowCheckBox | 要绑定到 ShowCheckBox 对象的属性的 TreeNode 静态值。 |
Target | 要绑定到 Target 对象的属性的 TreeNode 静态值。 |
Text | 要绑定到 Text 对象的属性的 TreeNode 静态值。 |
ToolTip | 要绑定到 ToolTip 对象的属性的 TreeNode 静态值。 |
Value | 要绑定到 Value 对象的属性的 TreeNode 静态值。 |
如果定义了冲突 TreeNodeBinding 对象,该 TreeView 控件将按以下优先级顺序应用树节点绑定:
TreeNodeBinding定义和数据成员并匹配的对象。
TreeNodeBinding仅定义数据成员并匹配的对象。
TreeNodeBinding仅定义和匹配深度的对象。
TreeNodeBinding定义深度和数据成员的对象。 (此类型的树节点绑定应用于树中的所有节点。)
TreeNodeBinding数据源中没有匹配的对象。 在这种情况下,数据项方法返回
ToString
的值随后绑定到Text应用对象的节点TreeNodeBinding和Value属性。
该 TreeNodeBinding 类还允许通过设置 FormatString 属性来设置节点中显示的文本的格式。
构造函数
TreeNodeBinding() |
初始化 TreeNodeBinding 类的新实例。 |
属性
DataMember |
获取或设置与数据项的 Type 属性进行匹配以确定是否应用树节点绑定的值。 |
Depth |
获取或设置应用 TreeNodeBinding 对象的节点深度。 |
FormatString |
获取或设置字符串,指定 TreeNodeBinding 对象应用到的节点的文本显示格式。 |
ImageToolTip |
获取或设置显示在 TreeNodeBinding 对象应用到的节点旁边的图像的 ToolTip 文本。 |
ImageToolTipField |
获取或设置数据源中字段的名称,该字段将绑定到 ImageToolTip 对象将应用到的 TreeNode 对象的 TreeNodeBinding 属性。 |
ImageUrl |
获取或设置显示在应用 TreeNodeBinding 对象的节点旁边的图像的 URL。 |
ImageUrlField |
获取或设置数据源中字段的名称,该字段将绑定到 ImageUrl 对象将应用到的 TreeNode 对象的 TreeNodeBinding 属性。 |
NavigateUrl |
获取或设置单击 TreeNodeBinding 对象应用到的节点时链接到的 URL。 |
NavigateUrlField |
获取或设置数据源中字段的名称,该字段将绑定到 NavigateUrl 对象将应用到的 TreeNode 对象的 TreeNodeBinding 属性。 |
PopulateOnDemand |
获取或设置一个值,指示是否动态填充 TreeNodeBinding 对象应用到的节点。 |
SelectAction |
获取或设置当选定 TreeNodeBinding 对象应用到的节点时引发的事件。 |
ShowCheckBox |
获取或设置一个值,指示是否在 TreeNodeBinding 对象应用到的节点旁边显示复选框。 |
Target |
获取或设置在其中显示与 TreeNodeBinding 对象应用到的节点关联的网页内容的目标窗口或框架。 |
TargetField |
获取或设置数据源中字段的名称,该字段将绑定到 Target 对象将应用到的 TreeNode 对象的 TreeNodeBinding 属性。 |
Text |
获取或设置为 TreeNodeBinding 对象应用到的节点显示的文本。 |
TextField |
获取或设置数据源中字段的名称,该字段将绑定到 Text 对象将应用到的 TreeNode 对象的 TreeNodeBinding 属性。 |
ToolTip |
获取或设置 TreeNodeBinding 对象应用到的节点的 ToolTip 文本。 |
ToolTipField |
获取或设置数据源中字段的名称,该字段将绑定到 ToolTip 对象将应用到的 TreeNode 对象的 TreeNodeBinding 属性。 |
Value |
获取或设置显示值,该值是不显示的,但用来存储有关 TreeNodeBinding 对象应用到的节点的任何其他数据,如用于处理回发事件的数据。 |
ValueField |
获取或设置数据源中字段的名称,该字段将绑定到 Value 对象将应用到的 TreeNode 对象的 TreeNodeBinding 属性。 |
方法
Equals(Object) |
确定指定对象是否等于当前对象。 (继承自 Object) |
GetHashCode() |
作为默认哈希函数。 (继承自 Object) |
GetType() |
获取当前实例的 Type。 (继承自 Object) |
MemberwiseClone() |
创建当前 Object 的浅表副本。 (继承自 Object) |
ToString() |
返回 DataMember 属性。 |
显式接口实现
ICloneable.Clone() |
创建 TreeNodeBinding 对象的副本。 |
IDataSourceViewSchemaAccessor.DataSourceViewSchema |
有关此成员的说明,请参见 DataSourceViewSchema。 |
IStateManager.IsTrackingViewState |
有关此成员的说明,请参见 IsTrackingViewState。 |
IStateManager.LoadViewState(Object) |
加载以前保存的节点的视图状态。 |
IStateManager.SaveViewState() |
保存对象的视图状态更改。 |
IStateManager.TrackViewState() |
指示 TreeNode 对象跟踪对其视图状态的更改。 |
适用于
另请参阅
- TreeView
- TreeNode
- TreeNodeBindingCollection
- XmlDataSource
- DataBindings
- DataMember
- Depth
- FormatString
- ImageUrl
- ImageUrlField
- ImageToolTip
- ImageToolTipField
- NavigateUrl
- NavigateUrl
- NavigateUrlField
- PopulateOnDemand
- SelectAction
- ShowCheckBox
- Target
- Text
- Text
- TextField
- ToolTip
- ToolTip
- ToolTipField
- Value
- Value
- ValueField