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 . Чтобы удалить узлы из коллекции, используйте Removeметод , RemoveAtили 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) |
Удаляет указанный объект TreeNodeBinding из объекта TreeNodeBindingCollection. |
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) |
Методы расширения
Cast<TResult>(IEnumerable) |
Приводит элементы объекта IEnumerable к заданному типу. |
OfType<TResult>(IEnumerable) |
Выполняет фильтрацию элементов объекта IEnumerable по заданному типу. |
AsParallel(IEnumerable) |
Позволяет осуществлять параллельный запрос. |
AsQueryable(IEnumerable) |
Преобразовывает коллекцию IEnumerable в объект IQueryable. |