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 свойства всех узлов в дереве к TitleID полям источника данных соответственно. Все узлы используют объявление привязки узла дерева, так как DataMemberDepth свойства не заданы. |
<asp:TreeNodeBinding DataMember= "Book" TextField= "Title" ValueField= "ID"/> |
Привязывает Text и Value свойства всех узлов в дереве к TitleID полям Book элемента данных в источнике данных соответственно. |
<asp:TreeNodeBinding Depth="2" TextField= "Title" ValueField= "ID"/> |
Привязывает Text и Value свойства всех узлов с глубиной 2 в дереве к TitleID полям элемента данных в источнике данных соответственно. |
<asp:TreeNodeBinding DataMember="Book" Depth= "2" TextField= "Title" ValueField= "ID" ImageUrl= "Image.jpg"> |
Привязывает Text и Value свойства всех узлов с глубиной 2 в дереве к TitleID полям 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 | Статическое значение для привязки TreeNode к ImageUrl свойству объекта. |
| ImageToolTip | Статическое значение для привязки TreeNode к ImageToolTip свойству объекта. |
| NavigateUrl | Статическое значение для привязки TreeNode к NavigateUrl свойству объекта. |
| PopulateOnDemand | Статическое значение для привязки TreeNode к PopulateOnDemand свойству объекта. |
| SelectAction | Статическое значение для привязки TreeNode к SelectAction свойству объекта. |
| ShowCheckBox | Статическое значение для привязки TreeNode к ShowCheckBox свойству объекта. |
| Target | Статическое значение для привязки TreeNode к Target свойству объекта. |
| Text | Статическое значение для привязки TreeNode к Text свойству объекта. |
| ToolTip | Статическое значение для привязки TreeNode к ToolTip свойству объекта. |
| Value | Статическое значение для привязки TreeNode к Value свойству объекта. |
Если определены конфликтующие TreeNodeBinding объекты, TreeView элемент управления применяет привязки узлов дерева в следующем порядке приоритета:
Объект TreeNodeBinding , определяющий и соответствующий глубине и члену данных.
Объект TreeNodeBinding , определяющий и соответствующий только элементу данных.
Объект TreeNodeBinding , определяющий и соответствующий только глубине.
Объект TreeNodeBinding , определяющий ни глубину, ни элемент данных. (Этот тип привязки узла дерева применяется ко всем узлам в дереве.)
Объект TreeNodeBinding , не соответствующий источнику данных. В этом случае значение, возвращаемое методом
ToStringэлемента данных, затем привязано к TextValue узлам, к которым 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