Exportieren (0) Drucken
Alle erweitern

TreeNodeBinding-Klasse

Definiert die Beziehung zwischen einem Datenelement und dem Knoten, mit dem es in einem TreeView-Steuerelement eine Bindung herstellt.

Namespace: System.Web.UI.WebControls
Assembly: System.Web (in system.web.dll)

public sealed class TreeNodeBinding : IStateManager, ICloneable, IDataSourceViewSchemaAccessor
public final class TreeNodeBinding implements IStateManager, ICloneable, 
	IDataSourceViewSchemaAccessor
public final class TreeNodeBinding implements IStateManager, ICloneable, 
	IDataSourceViewSchemaAccessor
Nicht zutreffend.

Beim Binden des TreeView-Steuerelements an eine Datenquelle, in der jedes Datenelement mehrere Felder enthält (z. B. ein XML-Element mit mehreren Attributen), wird der von der ToString-Methode des Datenelements zurückgegebene Wert standardmäßig von einem Knoten angezeigt. Im Falle eines XML-Elements zeigt der Knoten den Elementnamen an, der zwar die zugrunde liegende Struktur angibt, aber ansonsten wenig Informationen enthält. 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 werden soll.

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 einem TreeNodeBinding-Objekt zuzuordnen, um das entsprechende TreeNode-Objekt zu erstellen.

Wenn Sie ein TreeNodeBinding-Objekt erstellen, 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, die DataMember-Eigenschaft oder beide Eigenschaften angeben. Durch das Angeben beider Eigenschaften wird eine leichte Leistungssteigerung erzielt. Eine Knotentiefe gibt die Knotenebene an, die gebunden werden soll. Beispielsweise werden in der folgenden TreeNodeBinding-Deklaration das Name-Feld und das ID-Feld der Datenquelle an die Text-Eigenschaft und an die Value-Eigenschaft aller Knoten mit der Ebene 0 (null) gebunden:

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

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

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

Wenn die Bindungskriterien festgelegt sind, können Sie eine Eigenschaft eines TreeNode-Objekts binden, das an einen Wert gebunden werden kann. Sie können eine Bindung mit einem Feld eines Datenelements oder mit einem statischen Wert herstellen. Bei der Bindung an einen statischen Wert weisen alle TreeNode-Objekte, für die das TreeNodeBinding-Objekt übernommen wird, denselben Wert auf.

HinweisHinweis:

Sie können eine gebundene Eigenschaft in einem TreeNode-Objekt selektiv überschreiben, indem Sie die entsprechende Eigenschaft direkt im Knoten festlegen.

In der folgenden Tabelle werden die Eigenschaften der TreeNodeBinding-Klasse aufgelistet, mit denen 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 werden die Eigenschaften der TreeNodeBinding-Klasse aufgelistet, mit denen 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 in Konflikt stehende TreeNodeBinding-Objekte definiert werden, werden die Strukturknotenbindungen vom TreeView-Steuerelement entsprechend der folgenden Rangfolge angewendet:

  1. Das TreeNodeBinding-Objekt, das sowohl die Tiefe als auch einen Datenmember definiert und zuordnet.

  2. Das TreeNodeBinding-Objekt, das nur den Datenmember definiert und zuordnet.

  3. Das TreeNodeBinding-Objekt, das nur die Tiefe definiert und zuordnet.

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

  5. Das TreeNodeBinding-Objekt, für das keine Entsprechung in der Datenquelle vorhanden ist. In diesem Fall wird der von der ToString-Methode des Datenelements zurückgegebene Wert an die Text-Eigenschaft und die Value-Eigenschaft der Knoten gebunden, auf die das TreeNodeBinding-Objekt angewendet wird.

Mithilfe der TreeNodeBinding-Klasse können Sie außerdem den in einem Knoten angezeigten Text formatieren, indem Sie die FormatString-Eigenschaft festlegen.

In der folgenden Tabelle sind einige beispielhafte Deklarationen für Strukturknotenbindungen aufgelistet.

Beispielbindung

Beschreibung

<asp:TreeNodeBinding TextField="Title" ValueField= "ID"/>

Bindet die Text-Eigenschaft und die Value-Eigenschaft aller Knoten in der Struktur an das Title-Feld und das ID-Feld der Datenquelle. Diese Strukturknoten-Bindungsdeklaration wird von allen Knoten verwendet, da die DataMember-Eigenschaft und die Depth-Eigenschaft nicht festgelegt sind.

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

Bindet die Text-Eigenschaft und die Value-Eigenschaft aller Knoten in der Struktur an das Title-Feld und das ID-Feld des Book-Datenelements in der Datenquelle.

<asp:TreeNodeBinding Depth="2" TextField= "Title" ValueField= "ID"/>

Bindet die Text-Eigenschaft und die Value-Eigenschaft aller Knoten mit der Tiefe 2 in der Struktur an das Title-Feld und das ID-Feld des Datenelements in der Datenquelle.

<asp:TreeNodeBinding DataMember="Book" Depth= "2" TextField= "Title" ValueField= "ID" ImageUrl= "Image.jpg">

Bindet die Text-Eigenschaft und die Value-Eigenschaft aller Knoten mit der Tiefe 2 in der Struktur an das Title-Feld und das ID-Feld des Book-Datenelements in der Datenquelle. Bindet zudem die ImageUrl-Eigenschaft der Knoten an einen statischen Wert.

Dieser Abschnitt enthält drei Codebeispiele. Im ersten Codebeispiel wird veranschaulicht, wie TreeNodeBinding-Objekte deklarativ zum Definieren der Beziehung zwischen einem Knoten und einem Datenelement verwendet werden. Im zweiten Codebeispiel wird veranschaulicht, wie TreeNodeBinding-Objekte programmgesteuert zum Definieren der Beziehung zwischen einem Knoten und einem Datenelement verwendet werden. Im dritten Codebeispiel werden Beispiel-XML-Daten für das erste und zweite Codebeispiel bereitgestellt.

Im folgenden Codebeispiel wird veranschaulicht, wie TreeNodeBinding-Objekte deklarativ zum Definieren der Beziehung zwischen einem Knoten und einem Datenelement verwendet werden. Damit dieses Beispiel wie vorgesehen ausgeführt wird, müssen Sie die Beispiel-XML-Daten, die nach diesem Codebeispiel angegeben sind, in die Datei Book.xml kopieren.


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


Im folgenden Codebeispiel wird veranschaulicht, wie TreeNodeBinding-Objekte programmgesteuert zum Definieren der Beziehung zwischen einem Knoten und einem Datenelement verwendet werden. Damit dieses Beispiel wie vorgesehen funktioniert, müssen Sie die im nächsten Codebeispiel bereitgestellten Beispiel-XML-Daten in die Datei Book.xml kopieren.


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


Das folgende Codebeispiel enthält Beispiel-XML-Daten für die vorherigen Codebeispiele.

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

System.Object
  System.Web.UI.WebControls.TreeNodeBinding

Alle öffentlichen statischen (Shared in Visual Basic) Member dieses Typs sind threadsicher. Bei Instanzmembern ist die Threadsicherheit nicht gewährleistet.

Windows 98, Windows Server 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile für Pocket PC, Windows Mobile für Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

Microsoft .NET Framework 3.0 wird unter Windows Vista, Microsoft Windows XP SP2 und Windows Server 2003 SP1 unterstützt.

.NET Framework

Unterstützt in: 3.0, 2.0
Microsoft führt eine Onlineumfrage durch, um Ihre Meinung zur MSDN-Website zu erfahren. Wenn Sie sich zur Teilnahme entscheiden, wird Ihnen die Onlineumfrage angezeigt, sobald Sie die MSDN-Website verlassen.

Möchten Sie an der Umfrage teilnehmen?
Anzeigen:
© 2015 Microsoft