TreeNodeBindingCollection Класс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Представляет коллекцию TreeNodeBinding объектов в элементе TreeView управления. Этот класс не может быть унаследован.
public ref class TreeNodeBindingCollection sealed : System::Web::UI::StateManagedCollection
public sealed class TreeNodeBindingCollection : System.Web.UI.StateManagedCollection
type TreeNodeBindingCollection = class
inherit StateManagedCollection
Public NotInheritable Class TreeNodeBindingCollection
Inherits StateManagedCollection
- Наследование
Примеры
В этом разделе содержатся два примера кода. В первом примере кода показано, как заполнять TreeNodeBindingCollection объект декларативно. Второй пример кода демонстрирует, как заполнять TreeNodeBindingCollection объект программным способом.
В следующем примере кода показано, как заполнять TreeNodeBindingCollection объект декларативно. Для правильной работы этого примера необходимо скопировать 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>
В следующем примере кода показано, как заполнять TreeNodeBindingCollection объект программным способом. Для правильной работы этого примера необходимо скопировать примеры 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>
Комментарии
Класс TreeNodeBindingCollection используется для хранения коллекции TreeNodeBinding объектов в элементе управления и управления ими TreeView . Элемент TreeView управления использует TreeNodeBindingCollection класс для его DataBindings свойства.
Свойство DataBindings содержит TreeNodeBinding объекты, определяющие связь между элементом данных и узлом, к которому она привязана. При привязке к источнику данных, где каждый элемент данных содержит несколько свойств (например, XML-элемент с несколькими атрибутами), узел отображает значение, возвращаемое методом ToString элемента данных, по умолчанию. В случае XML-элемента узел отображает имя элемента, которое показывает базовую структуру дерева, но не очень полезно в противном случае. Вы можете привязать узел к определенному свойству элемента данных, указав привязки узлов дерева.
DataBindings Хотя коллекция может быть программно заполнена, обычно она устанавливается декларативно.
Чтобы задать привязки узла дерева декларативно:
Вложенные теги открытия и закрытия между открывающим и закрывающим
<DataBindings>тегами TreeView элемента управления.Поместите
<asp:TreeNodeBinding>элементы между открывающими и закрывающими<DataBindings>тегами для каждой привязки узла дерева, которую необходимо указать.
Вы можете программно управлять им TreeNodeBindingCollection , добавляя и удаляя TreeNodeBinding объекты. Чтобы добавить TreeNodeBinding объект в коллекцию, используйте Add или Insert метод. Чтобы удалить узлы из коллекции, используйте RemoveRemoveAtметод , или StateManagedCollection.Clear метод.
Класс TreeNodeBindingCollection поддерживает несколько способов доступа к элементам в коллекции:
Item[] Используйте индексатор для получения TreeNode объекта непосредственно в определенном отсчитываемом от нуля индексе.
StateManagedCollection.GetEnumerator Используйте метод для создания перечислителя, который можно использовать для итерации по коллекции.
Свойства
| Имя | Описание |
|---|---|
| Count |
Возвращает количество элементов, содержащихся в StateManagedCollection коллекции. (Унаследовано от StateManagedCollection) |
| Item[Int32] |
Возвращает или задает TreeNodeBinding объект по указанному индексу в объекте TreeNodeBindingCollection . |
Методы
| Имя | Описание |
|---|---|
| Add(TreeNodeBinding) |
Добавляет указанный TreeNodeBinding объект в конец TreeNodeBindingCollection объекта. |
| Clear() |
Удаляет все элементы из StateManagedCollection коллекции. (Унаследовано от StateManagedCollection) |
| Contains(TreeNodeBinding) |
Определяет, находится ли указанный TreeNodeBinding объект в коллекции. |
| CopyTo(Array, Int32) |
Копирует элементы StateManagedCollection коллекции в массив, начиная с определенного индекса массива. (Унаследовано от StateManagedCollection) |
| CopyTo(TreeNodeBinding[], Int32) |
Копирует все элементы из TreeNodeBindingCollection объекта в совместимый одномерный массив объектов, начиная с указанного TreeNodeBinding индекса в целевом массиве. |
| CreateKnownType(Int32) |
При переопределении в производном классе создает экземпляр класса, реализующего IStateManager. Тип создаваемого объекта основан на указанном элементе коллекции, возвращаемой методом GetKnownTypes() . (Унаследовано от StateManagedCollection) |
| Equals(Object) |
Определяет, равен ли указанный объект текущему объекту. (Унаследовано от Object) |
| GetEnumerator() |
Возвращает итератор, который выполняет итерацию по StateManagedCollection коллекции. (Унаследовано от StateManagedCollection) |
| GetHashCode() |
Служит хэш-функцией по умолчанию. (Унаследовано от Object) |
| GetKnownTypes() |
При переопределении в производном классе получает массив IStateManager типов, которые StateManagedCollection может содержать коллекция. (Унаследовано от StateManagedCollection) |
| GetType() |
Возвращает Type текущего экземпляра. (Унаследовано от Object) |
| IndexOf(TreeNodeBinding) |
Определяет индекс указанного TreeNodeBinding объекта в коллекции. |
| Insert(Int32, TreeNodeBinding) |
Вставляет указанный TreeNodeBinding объект в TreeNodeBindingCollection объект по указанному расположению индекса. |
| MemberwiseClone() |
Создает неглубокую копию текущей Object. (Унаследовано от Object) |
| OnClear() |
При переопределении в производном классе выполняет дополнительную работу перед Clear() удалением всех элементов из коллекции. (Унаследовано от StateManagedCollection) |
| OnClearComplete() |
При переопределении в производном классе выполняет дополнительную работу после Clear() завершения удаления всех элементов из коллекции. (Унаследовано от StateManagedCollection) |
| OnInsert(Int32, Object) |
При переопределении в производном классе выполняет дополнительную работу перед IList.Insert(Int32, Object)IList.Add(Object) добавлением элемента в коллекцию. (Унаследовано от StateManagedCollection) |
| OnInsertComplete(Int32, Object) |
При переопределении в производном классе выполняет дополнительную работу после IList.Insert(Int32, Object)IList.Add(Object) добавления элемента в коллекцию. (Унаследовано от StateManagedCollection) |
| OnRemove(Int32, Object) |
При переопределении в производном классе выполняет дополнительную работу перед IList.Remove(Object)IList.RemoveAt(Int32) удалением указанного элемента из коллекции. (Унаследовано от StateManagedCollection) |
| OnRemoveComplete(Int32, Object) |
При переопределении в производном классе выполняет дополнительную работу после IList.Remove(Object)IList.RemoveAt(Int32) удаления указанного элемента из коллекции. (Унаследовано от StateManagedCollection) |
| OnValidate(Object) |
При переопределении в производном классе проверяет элемент StateManagedCollection коллекции. (Унаследовано от StateManagedCollection) |
| Remove(TreeNodeBinding) |
Удаляет указанный TreeNodeBindingTreeNodeBindingCollection объект из объекта. |
| RemoveAt(Int32) |
Удаляет TreeNodeBinding объект по указанному расположению индекса из TreeNodeBindingCollection объекта. |
| SetDirty() |
Принудительно сериализовать всю StateManagedCollection коллекцию в состояние просмотра. (Унаследовано от StateManagedCollection) |
| SetDirtyObject(Object) |
При переопределении в производном классе предписывает |
| ToString() |
Возвращает строку, представляющую текущий объект. (Унаследовано от Object) |
Явные реализации интерфейса
| Имя | Описание |
|---|---|
| ICollection.Count |
Возвращает количество элементов, содержащихся в StateManagedCollection коллекции. (Унаследовано от StateManagedCollection) |
| ICollection.IsSynchronized |
Возвращает значение, указывающее, синхронизирована ли StateManagedCollection коллекция (потокобезопасная). Этот метод возвращается |
| ICollection.SyncRoot |
Возвращает объект, который можно использовать для синхронизации доступа к StateManagedCollection коллекции. Этот метод возвращается |
| IEnumerable.GetEnumerator() |
Возвращает итератор, который выполняет итерацию по StateManagedCollection коллекции. (Унаследовано от StateManagedCollection) |
| IList.Add(Object) |
Добавляет элемент в коллекцию StateManagedCollection . (Унаследовано от StateManagedCollection) |
| IList.Clear() |
Удаляет все элементы из StateManagedCollection коллекции. (Унаследовано от StateManagedCollection) |
| IList.Contains(Object) |
Определяет, содержит ли StateManagedCollection коллекция определенное значение. (Унаследовано от StateManagedCollection) |
| IList.IndexOf(Object) |
Определяет индекс указанного элемента в StateManagedCollection коллекции. (Унаследовано от StateManagedCollection) |
| IList.Insert(Int32, Object) |
Вставляет элемент в StateManagedCollection коллекцию по указанному индексу. (Унаследовано от StateManagedCollection) |
| IList.IsFixedSize |
Возвращает значение, указывающее, имеет ли StateManagedCollection коллекция фиксированный размер. Этот метод возвращается |
| IList.IsReadOnly |
Возвращает значение, указывающее, доступна ли StateManagedCollection коллекция только для чтения. (Унаследовано от StateManagedCollection) |
| IList.Item[Int32] |
Возвращает элемент по указанному IStateManager индексу. (Унаследовано от StateManagedCollection) |
| IList.Remove(Object) |
Удаляет первое вхождение указанного объекта из StateManagedCollection коллекции. (Унаследовано от StateManagedCollection) |
| IList.RemoveAt(Int32) |
Удаляет IStateManager элемент по указанному индексу. (Унаследовано от StateManagedCollection) |
| IStateManager.IsTrackingViewState |
Возвращает значение, указывающее, сохраняется ли StateManagedCollection коллекция изменений в состоянии представления. (Унаследовано от StateManagedCollection) |
| IStateManager.LoadViewState(Object) |
Восстанавливает ранее сохраненное состояние StateManagedCollection представления коллекции и IStateManager элементы, которые он содержит. (Унаследовано от StateManagedCollection) |
| IStateManager.SaveViewState() |
Сохраняет изменения в StateManagedCollection коллекции и каждый IStateManager объект, содержащийся с момента публикации страницы на сервер. (Унаследовано от StateManagedCollection) |
| IStateManager.TrackViewState() |
Приводит StateManagedCollection к тому, что коллекция и каждый из IStateManager объектов, содержащихся в нем, отслеживают изменения в состоянии представления, чтобы их можно было сохранять в запросах на одну и ту же страницу. (Унаследовано от StateManagedCollection) |
Методы расширения
| Имя | Описание |
|---|---|
| AsParallel(IEnumerable) |
Включает параллелизацию запроса. |
| AsQueryable(IEnumerable) |
Преобразует IEnumerable в IQueryable. |
| Cast<TResult>(IEnumerable) |
Приведение элементов IEnumerable к указанному типу. |
| OfType<TResult>(IEnumerable) |
Фильтрует элементы IEnumerable на основе указанного типа. |