Επεξεργασία

Κοινή χρήση μέσω


TreeNodeBindingCollection Class

Definition

Represents a collection of TreeNodeBinding objects in the TreeView control. This class cannot be inherited.

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
Inheritance
TreeNodeBindingCollection

Examples

This section contains two code examples. The first code example demonstrates how to populate a TreeNodeBindingCollection object declaratively. The second code example demonstrates how to populate a TreeNodeBindingCollection object programmatically.

The following code example demonstrates how to populate a TreeNodeBindingCollection object declaratively. For this example to work correctly, you must copy the XML data that is located at the end of this section to a file called 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>

The following code example demonstrates how to populate a TreeNodeBindingCollection object programmatically. For this example to work correctly, you must copy the sample XML data that is located at the end of this section to a file called 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>

The following is the XML data for the preceding code examples.

<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>  

Remarks

The TreeNodeBindingCollection class is used to store and manage a collection of TreeNodeBinding objects in the TreeView control. The TreeView control uses the TreeNodeBindingCollection class for its DataBindings property.

The DataBindings property contains TreeNodeBinding objects that define the relationship between a data item and the node that it is binding to. When binding to a data source where each data item contains multiple properties (such as an XML element with several attributes), a node displays the value that is returned by the ToString method of the data item, by default. In the case of an XML element, the node displays the element name, which shows the underlying structure of the tree but is not very useful otherwise. You can bind a node to a specific data item property by specifying tree node bindings. Although the DataBindings collection can be programmatically populated, it is usually set declaratively.

To set the tree node bindings declaratively:

  1. Nest opening and closing <DataBindings> tags between the opening and closing tags of the TreeView control.

  2. Place <asp:TreeNodeBinding> elements between the opening and closing <DataBindings> tags for each tree node binding that you want to specify.

You can programmatically manage a TreeNodeBindingCollection by adding and removing TreeNodeBinding objects. To add a TreeNodeBinding object to the collection, use the Add or Insert method. To remove nodes from the collection, use the Remove, RemoveAt, or StateManagedCollection.Clear method.

The TreeNodeBindingCollection class supports several ways to access the items in the collection:

Properties

Count

Gets the number of elements contained in the StateManagedCollection collection.

(Inherited from StateManagedCollection)
Item[Int32]

Gets or sets the TreeNodeBinding object at the specified index in the TreeNodeBindingCollection object.

Methods

Add(TreeNodeBinding)

Appends the specified TreeNodeBinding object to the end of the TreeNodeBindingCollection object.

Clear()

Removes all items from the StateManagedCollection collection.

(Inherited from StateManagedCollection)
Contains(TreeNodeBinding)

Determines whether the specified TreeNodeBinding object is in the collection.

CopyTo(Array, Int32)

Copies the elements of the StateManagedCollection collection to an array, starting at a particular array index.

(Inherited from StateManagedCollection)
CopyTo(TreeNodeBinding[], Int32)

Copies all the items from the TreeNodeBindingCollection object to a compatible one-dimensional array of TreeNodeBinding objects, starting at the specified index in the target array.

CreateKnownType(Int32)

When overridden in a derived class, creates an instance of a class that implements IStateManager. The type of object created is based on the specified member of the collection returned by the GetKnownTypes() method.

(Inherited from StateManagedCollection)
Equals(Object)

Determines whether the specified object is equal to the current object.

(Inherited from Object)
GetEnumerator()

Returns an iterator that iterates through the StateManagedCollection collection.

(Inherited from StateManagedCollection)
GetHashCode()

Serves as the default hash function.

(Inherited from Object)
GetKnownTypes()

When overridden in a derived class, gets an array of IStateManager types that the StateManagedCollection collection can contain.

(Inherited from StateManagedCollection)
GetType()

Gets the Type of the current instance.

(Inherited from Object)
IndexOf(TreeNodeBinding)

Determines the index of the specified TreeNodeBinding object in the collection.

Insert(Int32, TreeNodeBinding)

Inserts the specified TreeNodeBinding object into the TreeNodeBindingCollection object at the specified index location.

MemberwiseClone()

Creates a shallow copy of the current Object.

(Inherited from Object)
OnClear()

When overridden in a derived class, performs additional work before the Clear() method removes all items from the collection.

(Inherited from StateManagedCollection)
OnClearComplete()

When overridden in a derived class, performs additional work after the Clear() method finishes removing all items from the collection.

(Inherited from StateManagedCollection)
OnInsert(Int32, Object)

When overridden in a derived class, performs additional work before the IList.Insert(Int32, Object) or IList.Add(Object) method adds an item to the collection.

(Inherited from StateManagedCollection)
OnInsertComplete(Int32, Object)

When overridden in a derived class, performs additional work after the IList.Insert(Int32, Object) or IList.Add(Object) method adds an item to the collection.

(Inherited from StateManagedCollection)
OnRemove(Int32, Object)

When overridden in a derived class, performs additional work before the IList.Remove(Object) or IList.RemoveAt(Int32) method removes the specified item from the collection.

(Inherited from StateManagedCollection)
OnRemoveComplete(Int32, Object)

When overridden in a derived class, performs additional work after the IList.Remove(Object) or IList.RemoveAt(Int32) method removes the specified item from the collection.

(Inherited from StateManagedCollection)
OnValidate(Object)

When overridden in a derived class, validates an element of the StateManagedCollection collection.

(Inherited from StateManagedCollection)
Remove(TreeNodeBinding)

Removes the specified TreeNodeBinding object from the TreeNodeBindingCollection object.

RemoveAt(Int32)

Removes the TreeNodeBinding object at the specified index location from the TreeNodeBindingCollection object.

SetDirty()

Forces the entire StateManagedCollection collection to be serialized into view state.

(Inherited from StateManagedCollection)
SetDirtyObject(Object)

When overridden in a derived class, instructs an object contained by the collection to record its entire state to view state, rather than recording only change information.

(Inherited from StateManagedCollection)
ToString()

Returns a string that represents the current object.

(Inherited from Object)

Explicit Interface Implementations

ICollection.Count

Gets the number of elements contained in the StateManagedCollection collection.

(Inherited from StateManagedCollection)
ICollection.IsSynchronized

Gets a value indicating whether the StateManagedCollection collection is synchronized (thread safe). This method returns false in all cases.

(Inherited from StateManagedCollection)
ICollection.SyncRoot

Gets an object that can be used to synchronize access to the StateManagedCollection collection. This method returns null in all cases.

(Inherited from StateManagedCollection)
IEnumerable.GetEnumerator()

Returns an iterator that iterates through the StateManagedCollection collection.

(Inherited from StateManagedCollection)
IList.Add(Object)

Adds an item to the StateManagedCollection collection.

(Inherited from StateManagedCollection)
IList.Clear()

Removes all items from the StateManagedCollection collection.

(Inherited from StateManagedCollection)
IList.Contains(Object)

Determines whether the StateManagedCollection collection contains a specific value.

(Inherited from StateManagedCollection)
IList.IndexOf(Object)

Determines the index of a specified item in the StateManagedCollection collection.

(Inherited from StateManagedCollection)
IList.Insert(Int32, Object)

Inserts an item into the StateManagedCollection collection at the specified index.

(Inherited from StateManagedCollection)
IList.IsFixedSize

Gets a value indicating whether the StateManagedCollection collection has a fixed size. This method returns false in all cases.

(Inherited from StateManagedCollection)
IList.IsReadOnly

Gets a value indicating whether the StateManagedCollection collection is read-only.

(Inherited from StateManagedCollection)
IList.Item[Int32]

Gets the IStateManager element at the specified index.

(Inherited from StateManagedCollection)
IList.Remove(Object)

Removes the first occurrence of the specified object from the StateManagedCollection collection.

(Inherited from StateManagedCollection)
IList.RemoveAt(Int32)

Removes the IStateManager element at the specified index.

(Inherited from StateManagedCollection)
IStateManager.IsTrackingViewState

Gets a value indicating whether the StateManagedCollection collection is saving changes to its view state.

(Inherited from StateManagedCollection)
IStateManager.LoadViewState(Object)

Restores the previously saved view state of the StateManagedCollection collection and the IStateManager items it contains.

(Inherited from StateManagedCollection)
IStateManager.SaveViewState()

Saves the changes to the StateManagedCollection collection and each IStateManager object it contains since the time the page was posted back to the server.

(Inherited from StateManagedCollection)
IStateManager.TrackViewState()

Causes the StateManagedCollection collection and each of the IStateManager objects it contains to track changes to their view state so they can be persisted across requests for the same page.

(Inherited from StateManagedCollection)

Extension Methods

Cast<TResult>(IEnumerable)

Casts the elements of an IEnumerable to the specified type.

OfType<TResult>(IEnumerable)

Filters the elements of an IEnumerable based on a specified type.

AsParallel(IEnumerable)

Enables parallelization of a query.

AsQueryable(IEnumerable)

Converts an IEnumerable to an IQueryable.

Applies to

See also