TreeNodeBinding Класс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Определяет связь между элементом данных и узлом, к которому он привязывается в элементе управления 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 элементам данных и ID полям Book элемента данных в источнике данных соответственно. |
<asp:TreeNodeBinding Depth="2" TextField= "Title" ValueField= "ID"/> |
Привязывает Text свойства Value всех узлов с глубиной 2 в дереве к Title ID элементам данных и полям элемента данных в источнике данных соответственно. |
<asp:TreeNodeBinding DataMember="Book" Depth= "2" TextField= "Title" ValueField= "ID" ImageUrl= "Image.jpg"> |
Привязывает Text свойства Value всех узлов с глубиной 2 в дереве к Title ID элементам данных и полям Book элемента данных в источнике данных соответственно. Также привязывает 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 объявление привязывает Name
и ID
поля источника данных к Text свойствам и Value свойствам всех узлов с глубиной 0:
<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 | Поле для привязки TreeNode к свойству ImageUrl объекта. |
ImageToolTipField | Поле для привязки TreeNode к свойству ImageToolTip объекта. |
NavigateUrlField | Поле для привязки TreeNode к свойству NavigateUrl объекта. |
TextField | Поле для привязки TreeNode к свойству Text объекта. |
ToolTipField | Поле для привязки TreeNode к свойству ToolTip объекта. |
ValueField | Поле для привязки TreeNode к свойству Value объекта. |
В следующей таблице перечислены свойства TreeNodeBinding класса, позволяющие привязать свойство TreeNode объекта к статическому значению.
Свойство | Описание |
---|---|
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 Value узлам, к которым TreeNodeBinding применяется объект.
Класс TreeNodeBinding также позволяет отформатировать текст, отображаемый в узле, задав FormatString свойство.
Конструкторы
TreeNodeBinding() |
Инициализирует новый экземпляр класса TreeNodeBinding. |
Свойства
DataMember |
Получает или задает значение, которое необходимо сопоставить со свойством Type элемента данных, чтобы определить, должна ли применяться привязка узла дерева. |
Depth |
Получает или задает глубину узла, на которой применяется объект TreeNodeBinding. |
FormatString |
Получает или задает строку, определяющую формат отображения текста узла, к которому применяется объект TreeNodeBinding. |
ImageToolTip |
Получает или задает текст подсказки для изображения, которое отображается возле узла, к которому применяется объект TreeNodeBinding. |
ImageToolTipField |
Получает или задает имя поля из источника данных для привязки к свойству ImageToolTip объекта TreeNode, к которому применяется объект TreeNodeBinding. |
ImageUrl |
Получает или задает URL-адрес изображения, отображаемого рядом с узлом, к которому применяется объект TreeNodeBinding. |
ImageUrlField |
Получает или задает имя поля из источника данных для привязки к свойству ImageUrl объекта TreeNode, к которому применяется объект TreeNodeBinding. |
NavigateUrl |
Получает или задает URL-адрес для перехода после щелчка по узлу, к которому применяется объект TreeNodeBinding. |
NavigateUrlField |
Получает или задает имя поля из источника данных для привязки к свойству NavigateUrl объекта TreeNode, к которому применяется объект TreeNodeBinding. |
PopulateOnDemand |
Получает или задает значение, показывающее, заполняется ли динамически узел, к которому применяется объект TreeNodeBinding. |
SelectAction |
Получает или задает событие (события), которое должно возникать после выбора узла, к которому применяется объект TreeNodeBinding. |
ShowCheckBox |
Получает или задает значение, указывающее, отображается ли флажок рядом с узлом, к которому применяется объект TreeNodeBinding. |
Target |
Получает или задает целевое окно или фрейм для отображения содержимого веб-страницы, связанного с узлом, к которому применяется объект TreeNodeBinding. |
TargetField |
Получает или задает имя поля из источника данных для привязки к свойству Target объекта TreeNode, к которому применяется объект TreeNodeBinding. |
Text |
Получает или задает текст, отображаемый для узла, к которому применяется объект TreeNodeBinding. |
TextField |
Получает или задает имя поля из источника данных для привязки к свойству Text объекта TreeNode, к которому применяется объект TreeNodeBinding. |
ToolTip |
Получает или задает текст подсказки для узла, к которому применяется объект TreeNodeBinding. |
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