Поделиться через


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 .

В следующем примере кода показано, как заполнить 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 Хотя коллекция может быть заполнена программным способом, обычно она устанавливается декларативно.

Чтобы задать привязки узлов дерева декларативно, выполните следующие действия:

  1. Вложение открывающих и закрывающих <DataBindings> тегов между открывающим и закрывающим тегами TreeView элемента управления.

  2. Поместите <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)

При переопределении в производном классе указывает объекту object, содержащемуся в коллекции, записать свое полное состояние, а не только информацию об изменениях в состоянии представления.

(Унаследовано от StateManagedCollection)
ToString()

Возвращает строку, представляющую текущий объект.

(Унаследовано от Object)

Явные реализации интерфейса

ICollection.Count

Получает количество элементов, содержащихся в коллекции StateManagedCollection.

(Унаследовано от StateManagedCollection)
ICollection.IsSynchronized

Получает значение, указывающее, является ли коллекция StateManagedCollection синхронизированной (потокобезопасной). Этот метод возвращает значение false во всех случаях.

(Унаследовано от StateManagedCollection)
ICollection.SyncRoot

Получает объект, который можно использовать для синхронизации доступа к коллекции StateManagedCollection. Этот метод возвращает значение null во всех случаях.

(Унаследовано от 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 фиксированный размер. Этот метод возвращает значение false во всех случаях.

(Унаследовано от 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.

Применяется к

См. также раздел