Freigeben über


TreeNodeBinding Klasse

Definition

Definiert die Beziehung zwischen einem Datenelement und dem Knoten, an den es in einem TreeView-Steuerelement gebunden werden soll.

public ref class TreeNodeBinding sealed : ICloneable, System::Web::UI::IDataSourceViewSchemaAccessor, System::Web::UI::IStateManager
public sealed class TreeNodeBinding : ICloneable, System.Web.UI.IDataSourceViewSchemaAccessor, System.Web.UI.IStateManager
type TreeNodeBinding = class
    interface IStateManager
    interface ICloneable
    interface IDataSourceViewSchemaAccessor
Public NotInheritable Class TreeNodeBinding
Implements ICloneable, IDataSourceViewSchemaAccessor, IStateManager
Vererbung
TreeNodeBinding
Implementiert

Beispiele

Die folgende Tabelle zeigt einige Beispiel-Strukturknotenbindungsdeklarationen.

Beispielbindung BESCHREIBUNG
<asp:TreeNodeBinding TextField="Title" ValueField= "ID"/> Bindet die Text Eigenschaften Value aller Knoten in der Struktur an die Title Felder ID der Datenquelle bzw. die Felder der Datenquelle. Alle Knoten verwenden diese Strukturknotenbindungsdeklaration, da die und Depth die DataMember Eigenschaften nicht festgelegt sind.
<asp:TreeNodeBinding DataMember= "Book" TextField= "Title" ValueField= "ID"/> Bindet die Text Eigenschaften Value aller Knoten in der Struktur an die Title Felder ID des Book Datenelements in der Datenquelle.
<asp:TreeNodeBinding Depth="2" TextField= "Title" ValueField= "ID"/> Bindet die Text Eigenschaften Value aller Knoten mit einer Tiefe von 2 in der Struktur an die Title Felder ID des Datenelements in der Datenquelle.
<asp:TreeNodeBinding DataMember="Book" Depth= "2" TextField= "Title" ValueField= "ID" ImageUrl= "Image.jpg"> Bindet die Text Eigenschaften Value aller Knoten mit einer Tiefe von 2 in der Struktur an die Title Felder ID des Book Datenelements in der Datenquelle. Bindet auch die ImageUrl Eigenschaft der Knoten an einen statischen Wert.

Dieser Abschnitt enthält drei Codebeispiele. Das erste Codebeispiel veranschaulicht, wie TreeNodeBinding Objekte deklarativ verwendet werden, um die Beziehung zwischen einem Knoten und einem Datenelement zu definieren. Das zweite Codebeispiel veranschaulicht, wie TreeNodeBinding Objekte programmgesteuert verwendet werden, um die Beziehung zwischen einem Knoten und einem Datenelement zu definieren. Das dritte Codebeispiel enthält Beispiel-XML-Daten für die ersten und zweiten Codebeispiele.

Im folgenden Codebeispiel wird veranschaulicht, wie TreeNodeBinding Objekte deklarativ verwendet werden, um die Beziehung zwischen einem Knoten und einem Datenelement zu definieren. Damit dieses Beispiel ordnungsgemäß funktioniert, müssen Sie die Beispiel-XML-Daten kopieren, die nach diesem Codebeispiel angegeben wurden, in eine Datei mit dem Namen 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>

Im folgenden Codebeispiel wird veranschaulicht, wie TreeNodeBinding Objekte programmgesteuert verwendet werden, um die Beziehung zwischen einem Knoten und einem Datenelement zu definieren. Damit dieses Beispiel ordnungsgemäß funktioniert, müssen Sie die BEISPIEL-XML-Daten kopieren, die im nächsten Codebeispiel in eine Datei mit dem Namen Book.xml bereitgestellt werden.


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

Im folgenden Codebeispiel werden Beispiel-XML-Daten für die vorherigen Codebeispiele bereitgestellt.

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

Hinweise

Wenn das TreeView Steuerelement an eine Datenquelle gebunden ist, in der jedes Datenelement mehrere Felder enthält (z. B. ein XML-Element mit mehreren Attributen), zeigt ein Knoten den Wert an, der von der ToString Methode des Datenelements zurückgegeben wird, standardmäßig. Im Falle eines XML-Elements zeigt der Knoten den Elementnamen an, der die zugrunde liegende Struktur der Struktur anzeigt, aber ansonsten nicht sehr nützlich ist. Sie können die Eigenschaften eines Knotens an ein bestimmtes Feld binden, indem Sie Strukturknotenbindungen angeben. Ein TreeNodeBinding Objekt definiert die Beziehung zwischen jedem Datenelement und dem Knoten, an den es gebunden ist.

Das TreeView Steuerelement speichert seine TreeNodeBinding Objekte in der DataBindings Eigenschaft und wendet die Bindungen auf die Datenquelle an, um eine 1:1-Beziehung zwischen der Strukturhierarchie und der Datenquellenhierarchie zu erstellen. Für jedes Datenelement in der Datenquelle versucht das TreeView Steuerelement, das Datenelement mit einem TreeNodeBinding Objekt übereinzugleichen, um das entsprechende TreeNode Objekt zu erstellen.

Beim Erstellen eines TreeNodeBinding Objekts müssen Sie die Kriterien für die Bindung angeben. Die Kriterien geben an, wann ein Datenelement an einen Knoten gebunden werden soll. Sie können die Depth Eigenschaft oder DataMember beide Eigenschaften angeben. Es gibt einen leichten Leistungsgewinn, indem beide angegeben werden. Eine Knotentiefe gibt die Knotenebene an, die gebunden wird. Die folgende TreeNodeBinding Deklaration bindet z. B. die Name Felder ID der Datenquelle an die Text Value und die Eigenschaften aller Knoten mit einer Tiefe von 0:

<asp:TreeNodeBinding Depth="0" TextField="Name" ValueField="ID">  

Ein Datenelement gibt den Typ des Datenelements in der zugrunde liegenden Datenquelle an, kann jedoch je nach Datenquelle unterschiedliche Informationen darstellen. Jedes Datenelement in einer hierarchischen Datenquelle (dargestellt durch eine System.Web.UI.IHierarchyData Schnittstelle) macht eine IHierarchyData.Type Eigenschaft verfügbar, die den Typ des Datenelements angibt. Beispielsweise gibt das Datenelement für ein XML-Element den Namen des Elements an. Wenn eine Datenquelle mehrere Datentypen enthält, gibt das Datenelementelement an, welches Datentyp verwendet werden soll. Die folgende TreeNodeBinding Deklaration bindet die <Book> Elemente eines XmlDataSource Steuerelements unabhängig von der Position in der Hierarchie an alle Knoten in der Struktur:

<asp:TreeNodeBinding DataMember="Book" TextField="Title" ValueField= "ISBN">  

Nachdem die Bindungskriterien festgelegt wurden, können Sie dann eine Eigenschaft eines TreeNode Objekts binden, das an einen Wert gebunden werden kann. Sie können an ein Feld eines Datenelements oder an einen statischen Wert binden. Wenn sie an einen statischen Wert gebunden sind, teilen alle TreeNode Objekte, auf die das TreeNodeBinding Objekt angewendet wird, denselben Wert.

Hinweis

Sie können eine gebundene Eigenschaft in einem TreeNode Objekt selektiv außer Kraft setzen, indem Sie die entsprechende Eigenschaft direkt im Knoten festlegen.

In der folgenden Tabelle sind die Eigenschaften der Klasse aufgeführt, mit denen TreeNodeBinding Sie eine Eigenschaft des TreeNode Objekts an ein Feld eines Datenelements binden können.

Eigenschaft BESCHREIBUNG
ImageUrlField Das Feld, das an die ImageUrl Eigenschaft eines TreeNode Objekts gebunden werden soll.
ImageToolTipField Das Feld, das an die ImageToolTip Eigenschaft eines TreeNode Objekts gebunden werden soll.
NavigateUrlField Das Feld, das an die NavigateUrl Eigenschaft eines TreeNode Objekts gebunden werden soll.
TextField Das Feld, das an die Text Eigenschaft eines TreeNode Objekts gebunden werden soll.
ToolTipField Das Feld, das an die ToolTip Eigenschaft eines TreeNode Objekts gebunden werden soll.
ValueField Das Feld, das an die Value Eigenschaft eines TreeNode Objekts gebunden werden soll.

In der folgenden Tabelle sind die Eigenschaften der Klasse aufgeführt, mit denen TreeNodeBinding Sie eine Eigenschaft des TreeNode Objekts an einen statischen Wert binden können.

Eigenschaft BESCHREIBUNG
ImageUrl Der statische Wert, der an die ImageUrl Eigenschaft eines TreeNode Objekts gebunden werden soll.
ImageToolTip Der statische Wert, der an die ImageToolTip Eigenschaft eines TreeNode Objekts gebunden werden soll.
NavigateUrl Der statische Wert, der an die NavigateUrl Eigenschaft eines TreeNode Objekts gebunden werden soll.
PopulateOnDemand Der statische Wert, der an die PopulateOnDemand Eigenschaft eines TreeNode Objekts gebunden werden soll.
SelectAction Der statische Wert, der an die SelectAction Eigenschaft eines TreeNode Objekts gebunden werden soll.
ShowCheckBox Der statische Wert, der an die ShowCheckBox Eigenschaft eines TreeNode Objekts gebunden werden soll.
Target Der statische Wert, der an die Target Eigenschaft eines TreeNode Objekts gebunden werden soll.
Text Der statische Wert, der an die Text Eigenschaft eines TreeNode Objekts gebunden werden soll.
ToolTip Der statische Wert, der an die ToolTip Eigenschaft eines TreeNode Objekts gebunden werden soll.
Value Der statische Wert, der an die Value Eigenschaft eines TreeNode Objekts gebunden werden soll.

Wenn konfliktende TreeNodeBinding Objekte definiert sind, wendet das TreeView Steuerelement die Strukturknotenbindungen in der folgenden Reihenfolge der Rangfolge an:

  1. Das TreeNodeBinding Objekt, das sowohl eine Tiefe als auch ein Datenelement definiert und übereinstimmt.

  2. Das TreeNodeBinding Objekt, das nur das Datenelement definiert und übereinstimmt.

  3. Das TreeNodeBinding Objekt, das nur die Tiefe definiert und übereinstimmt.

  4. Das TreeNodeBinding Objekt, das weder die Tiefe noch das Datenelement definiert. (Dieser Typ der Strukturknotenbindung wird auf alle Knoten in der Struktur angewendet.)

  5. Das TreeNodeBinding Objekt, das keine Übereinstimmung in der Datenquelle hat. In diesem Fall wird der wert, der von der ToString Methode des Datenelements zurückgegeben wird, dann an die Text Und Value Eigenschaften der Knoten gebunden, auf die das TreeNodeBinding Objekt angewendet wird.

Mit der TreeNodeBinding Klasse können Sie auch den Text formatieren, der in einem Knoten angezeigt wird, indem Sie die FormatString Eigenschaft festlegen.

Konstruktoren

TreeNodeBinding()

Initialisiert eine neue Instanz der TreeNodeBinding-Klasse.

Eigenschaften

DataMember

Ruft den mit einer Type-Eigenschaft für ein Datenelement abzugleichenden Wert ab, damit ermittelt werden kann, ob die Strukturknotenbindung angewendet werden soll, oder legt diesen Wert fest.

Depth

Ruft die Knotentiefe ab, in der das TreeNodeBinding-Objekt angewendet wird, oder legt diese fest.

FormatString

Ruft die Zeichenfolge ab, mit der das Anzeigeformat für den Text eines Knotens angegeben wird, für den das TreeNodeBinding-Objekt angewendet wird, oder legt diese Zeichenfolge fest.

ImageToolTip

Ruft den QuickInfo-Text für das Bild ab, das neben einem Knoten angezeigt wird, auf den das TreeNodeBinding-Objekt angewendet wird, oder legt diesen Text fest.

ImageToolTipField

Ruft den Namen des Felds aus der Datenquelle ab, das an die ImageToolTip-Eigenschaft eines TreeNode-Objekts gebunden werden soll, für das das TreeNodeBinding-Objekt übernommen wird, oder legt diesen fest.

ImageUrl

Ruft die URL für ein Bild ab, das neben einem Knoten angezeigt wird, auf den das TreeNodeBinding-Objekt angewendet wird, oder legt diese URL fest.

ImageUrlField

Ruft den Namen des Felds aus der Datenquelle ab, das an die ImageUrl-Eigenschaft eines TreeNode-Objekts gebunden werden soll, für das das TreeNodeBinding-Objekt übernommen wird, oder legt diesen fest.

NavigateUrl

Ruft die URL ab, zu der ein Link hergestellt werden soll, wenn auf einen Knoten geklickt wird, auf den das TreeNodeBinding-Objekt angewendet wird, oder legt diese URL fest.

NavigateUrlField

Ruft den Namen des Felds aus der Datenquelle ab, das an die NavigateUrl-Eigenschaft eines TreeNode-Objekts gebunden werden soll, für das das TreeNodeBinding-Objekt übernommen wird, oder legt diesen fest.

PopulateOnDemand

Ruft einen Wert ab, der angibt, ob der Knoten, auf den das TreeNodeBinding-Objekt angewendet wird, dynamisch aufgefüllt wird, oder legt diesen Wert fest.

SelectAction

Ruft das Ereignis bzw. die Ereignisse ab, die ausgelöst werden sollen, wenn ein Knoten ausgewählt wird, auf den das TreeNodeBinding-Objekt angewendet wird, oder legt dieses Ereignis bzw. diese Ereignisse fest.

ShowCheckBox

Ruft einen Wert ab, der angibt, ob ein Kontrollkästchen neben einem Knoten angezeigt wird, auf den das TreeNodeBinding-Objekt angewendet wird, oder legt diesen Wert fest.

Target

Ruft das Zielfenster oder den Zielframe ab, in dem die Webseiteninhalte angezeigt werden sollen, die einem Knoten zugeordnet sind, auf den das TreeNodeBinding-Objekt angewendet wird, oder legt dieses Zielfenster bzw. diesen Zielframe fest.

TargetField

Ruft den Namen des Felds aus der Datenquelle ab, das an die Target-Eigenschaft eines TreeNode-Objekts gebunden werden soll, für das das TreeNodeBinding-Objekt übernommen wird, oder legt diesen fest.

Text

Ruft den Text ab, der für den Knoten angezeigt wird, auf den das TreeNodeBinding-Objekt angewendet wird, oder legt diesen Text fest.

TextField

Ruft den Namen des Felds aus der Datenquelle ab, das an die Text-Eigenschaft eines TreeNode-Objekts gebunden werden soll, für das das TreeNodeBinding-Objekt übernommen wird, oder legt diesen fest.

ToolTip

Ruft den QuickInfo-Text für einen Knoten ab, auf den das TreeNodeBinding-Objekt angewendet wird, oder legt diesen Text fest.

ToolTipField

Ruft den Namen des Felds aus der Datenquelle ab, das an die ToolTip-Eigenschaft eines TreeNode-Objekts gebunden werden soll, für das das TreeNodeBinding-Objekt übernommen wird, oder legt diesen fest.

Value

Ruft einen angezeigten Wert ab, der nicht angezeigt wird, mit dem aber zusätzliche Daten zu einem Knoten gespeichert werden, auf den das TreeNodeBinding-Objekt angewendet wird (z. B. Daten zum Behandeln eines Postbackereignisses), oder legt diesen Wert fest.

ValueField

Ruft den Namen des Felds aus der Datenquelle ab, das an die Value-Eigenschaft eines TreeNode-Objekts gebunden werden soll, für das das TreeNodeBinding-Objekt übernommen wird, oder legt diesen fest.

Methoden

Equals(Object)

Bestimmt, ob das angegebene Objekt gleich dem aktuellen Objekt ist.

(Geerbt von Object)
GetHashCode()

Fungiert als Standardhashfunktion.

(Geerbt von Object)
GetType()

Ruft den Type der aktuellen Instanz ab.

(Geerbt von Object)
MemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object.

(Geerbt von Object)
ToString()

Gibt die DataMember-Eigenschaft zurück.

Explizite Schnittstellenimplementierungen

ICloneable.Clone()

Erstellt eine Kopie des TreeNodeBinding-Objekts.

IDataSourceViewSchemaAccessor.DataSourceViewSchema

Eine Beschreibung dieses Elements finden Sie unter DataSourceViewSchema.

IStateManager.IsTrackingViewState

Eine Beschreibung dieses Elements finden Sie unter IsTrackingViewState.

IStateManager.LoadViewState(Object)

Lädt den zuvor gespeicherten Ansichtszustand für den Knoten.

IStateManager.SaveViewState()

Speichert die Ansichtszustandsänderungen für ein Objekt.

IStateManager.TrackViewState()

Weist das TreeNode-Objekt an, Änderungen am Ansichtszustand nachzuverfolgen.

Gilt für

Siehe auch