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


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 метод. Чтобы удалить узлы из коллекции, используйте 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)

При переопределении в производном классе предписывает 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)

Методы расширения

Имя Описание
AsParallel(IEnumerable)

Включает параллелизацию запроса.

AsQueryable(IEnumerable)

Преобразует IEnumerable в IQueryable.

Cast<TResult>(IEnumerable)

Приведение элементов IEnumerable к указанному типу.

OfType<TResult>(IEnumerable)

Фильтрует элементы IEnumerable на основе указанного типа.

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

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