TreeNodeBinding Classe

Définition

Définit la relation entre un élément de données et le nœud auquel il est lié dans un contrôle TreeView.

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
Héritage
TreeNodeBinding
Implémente

Exemples

Le tableau suivant présente quelques exemples de déclarations de liaison de nœud d’arborescence.

Exemple de liaison Description
<asp:TreeNodeBinding TextField="Title" ValueField= "ID"/> Lie respectivement les propriétés et Value les Text propriétés de tous les nœuds de l’arborescence aux champs et ID à la Title source de données. Tous les nœuds utilisent cette déclaration de liaison de nœud d’arborescence, car les propriétés et Depth les DataMember propriétés ne sont pas définies.
<asp:TreeNodeBinding DataMember= "Book" TextField= "Title" ValueField= "ID"/> Lie respectivement les propriétés et les Text propriétés de tous les nœuds de l’arborescence aux champs et ID à l’élément Title Book de données de la source de Value données.
<asp:TreeNodeBinding Depth="2" TextField= "Title" ValueField= "ID"/> Lie respectivement les propriétés et Value les Text propriétés de tous les nœuds avec une profondeur de 2 dans l’arborescence aux Title champs et ID à l’élément de données de la source de données.
<asp:TreeNodeBinding DataMember="Book" Depth= "2" TextField= "Title" ValueField= "ID" ImageUrl= "Image.jpg"> Lie respectivement les propriétés et les Text propriétés de tous les nœuds avec une profondeur de 2 dans l’arborescence aux Title champs et ID à l’élément Book de données de la source de Value données. Lie également la ImageUrl propriété des nœuds à une valeur statique.

Cette section contient trois exemples de code. Le premier exemple de code montre comment utiliser TreeNodeBinding des objets de manière déclarative pour définir la relation entre un nœud et un élément de données. Le deuxième exemple de code montre comment utiliser TreeNodeBinding des objets par programmation pour définir la relation entre un nœud et un élément de données. Le troisième exemple de code fournit des exemples de données XML pour les exemples de premier et deuxième exemples de code.

L’exemple de code suivant montre comment utiliser TreeNodeBinding des objets de manière déclarative pour définir la relation entre un nœud et un élément de données. Pour que cet exemple fonctionne correctement, vous devez copier l’exemple de données XML, fourni après cet exemple de code, dans un fichier nommé 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>

L’exemple de code suivant montre comment utiliser TreeNodeBinding des objets par programmation pour définir la relation entre un nœud et un élément de données. Pour que cet exemple fonctionne correctement, vous devez copier les exemples de données XML fournies dans l’exemple de code suivant dans un fichier nommé 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>

L’exemple de code suivant fournit des exemples de données XML pour les exemples de code précédents.

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

Remarques

Lorsque le TreeView contrôle est lié à une source de données où chaque élément de données contient plusieurs champs (par exemple, un élément XML avec plusieurs attributs), un nœud affiche la valeur retournée par la méthode de l’élément ToString de données, par défaut. Dans le cas d’un élément XML, le nœud affiche le nom de l’élément, qui affiche la structure sous-jacente de l’arborescence, mais n’est pas très utile sinon. Vous pouvez lier les propriétés d’un nœud à un champ spécifique en spécifiant des liaisons de nœud d’arborescence. Un TreeNodeBinding objet définit la relation entre chaque élément de données et le nœud auquel il est lié.

Le TreeView contrôle stocke ses TreeNodeBinding objets dans la DataBindings propriété et applique les liaisons à la source de données pour créer une relation un-à-un entre la hiérarchie d’arborescences et la hiérarchie de source de données. Pour chaque élément de données de la source de données, le TreeView contrôle tente de faire correspondre l’élément de données à un TreeNodeBinding objet afin de créer l’objet correspondant TreeNode .

Lors de la création d’un TreeNodeBinding objet, vous devez spécifier les critères de liaison. Les critères indiquent quand un élément de données doit être lié à un nœud. Vous pouvez spécifier la ou DataMember la Depth propriété, ou les deux propriétés. Il y a un léger gain de performances en spécifiant les deux. Une profondeur de nœud spécifie le niveau de nœud qui est lié. Par exemple, la déclaration suivante TreeNodeBinding lie les champs et ID les Name champs de la source de données aux propriétés et Value aux Text propriétés, respectivement, de tous les nœuds avec une profondeur de 0 :

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

Un membre de données spécifie le type de l’élément de données dans la source de données sous-jacente, mais peut représenter différentes informations en fonction de la source de données. Chaque élément de données d’une source de données hiérarchique (représentée par une System.Web.UI.IHierarchyData interface) expose une IHierarchyData.Type propriété, qui spécifie le type de l’élément de données. Par exemple, le membre de données d’un élément XML spécifie le nom de l’élément. Lorsqu’une source de données contient plusieurs types d’éléments de données, le membre de données spécifie le type d’élément de données à utiliser. La déclaration suivante TreeNodeBinding lie les <Book> éléments d’un XmlDataSource contrôle à tous les nœuds de l’arborescence, quel que soit l’emplacement de la hiérarchie :

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

Une fois que les critères de liaison sont établis, vous pouvez ensuite lier une propriété d’un TreeNode objet qui peut être liée à une valeur. Vous pouvez lier un champ d’un élément de données ou à une valeur statique. Lorsqu’il est lié à une valeur statique, tous les TreeNode objets auxquels l’objet TreeNodeBinding est appliqué partagent la même valeur.

Notes

Vous pouvez remplacer sélectivement une propriété liée dans un TreeNode objet en définissant la propriété correspondante directement dans le nœud.

Le tableau suivant répertorie les propriétés de la TreeNodeBinding classe qui vous permettent de lier une propriété de l’objet TreeNode à un champ d’un élément de données.

Propriété Description
ImageUrlField Champ à lier à la ImageUrl propriété d’un TreeNode objet.
ImageToolTipField Champ à lier à la ImageToolTip propriété d’un TreeNode objet.
NavigateUrlField Champ à lier à la NavigateUrl propriété d’un TreeNode objet.
TextField Champ à lier à la Text propriété d’un TreeNode objet.
ToolTipField Champ à lier à la ToolTip propriété d’un TreeNode objet.
ValueField Champ à lier à la Value propriété d’un TreeNode objet.

Le tableau suivant répertorie les propriétés de la TreeNodeBinding classe qui vous permettent de lier une propriété de l’objet TreeNode à une valeur statique.

Propriété Description
ImageUrl Valeur statique à lier à la ImageUrl propriété d’un TreeNode objet.
ImageToolTip Valeur statique à lier à la ImageToolTip propriété d’un TreeNode objet.
NavigateUrl Valeur statique à lier à la NavigateUrl propriété d’un TreeNode objet.
PopulateOnDemand Valeur statique à lier à la PopulateOnDemand propriété d’un TreeNode objet.
SelectAction Valeur statique à lier à la SelectAction propriété d’un TreeNode objet.
ShowCheckBox Valeur statique à lier à la ShowCheckBox propriété d’un TreeNode objet.
Target Valeur statique à lier à la Target propriété d’un TreeNode objet.
Text Valeur statique à lier à la Text propriété d’un TreeNode objet.
ToolTip Valeur statique à lier à la ToolTip propriété d’un TreeNode objet.
Value Valeur statique à lier à la Value propriété d’un TreeNode objet.

Si des TreeNodeBinding objets en conflit sont définis, le TreeView contrôle applique les liaisons de nœud d’arborescence dans l’ordre de priorité suivant :

  1. Objet TreeNodeBinding qui définit et correspond à une profondeur et à un membre de données.

  2. Objet TreeNodeBinding qui définit et correspond uniquement au membre de données.

  3. Objet TreeNodeBinding qui définit et correspond à la profondeur uniquement.

  4. Objet TreeNodeBinding qui ne définit ni la profondeur ni le membre de données. (Ce type de liaison de nœud d’arborescence est appliqué à tous les nœuds de l’arborescence.)

  5. Objet TreeNodeBinding qui n’a pas de correspondance dans la source de données. Dans ce cas, la valeur retournée par la méthode de l’élément ToString de données est alors liée aux Text Value nœuds auxquels l’objet TreeNodeBinding est appliqué.

La TreeNodeBinding classe vous permet également de mettre en forme le texte affiché dans un nœud en définissant la FormatString propriété.

Constructeurs

TreeNodeBinding()

Initialise une nouvelle instance de la classe TreeNodeBinding.

Propriétés

DataMember

Obtient ou définit la valeur à faire correspondre avec une propriété Type pour un élément de données afin de déterminer si la liaison de nœud d'arbre doit être appliquée.

Depth

Obtient ou définit la profondeur de nœud à laquelle l'objet TreeNodeBinding est appliqué.

FormatString

Obtient ou définit la chaîne qui spécifie le format d'affichage du texte d'un nœud auquel l'objet TreeNodeBinding est appliqué.

ImageToolTip

Obtient ou définit le texte info-bulle de l'image qui est affiché à côté d'un nœud auquel l'objet TreeNodeBinding est appliqué.

ImageToolTipField

Obtient ou définit le nom du champ de la source de données à lier à la propriété ImageToolTip d'un objet TreeNode auquel l'objet TreeNodeBinding est appliqué.

ImageUrl

Obtient ou définit l'URL vers une image qui est affichée à côté d'un nœud auquel l'objet TreeNodeBinding est appliqué.

ImageUrlField

Obtient ou définit le nom du champ de la source de données à lier à la propriété ImageUrl d'un objet TreeNode auquel l'objet TreeNodeBinding est appliqué.

NavigateUrl

Obtient ou définit l'URL vers laquelle effectuer le lien lorsque l'utilisateur clique sur un nœud auquel l'objet TreeNodeBinding est appliqué.

NavigateUrlField

Obtient ou définit le nom du champ de la source de données à lier à la propriété NavigateUrl d'un objet TreeNode auquel l'objet TreeNodeBinding est appliqué.

PopulateOnDemand

Obtient ou définit une valeur indiquant si le nœud auquel l'objet TreeNodeBinding est appliqué est rempli dynamiquement.

SelectAction

Obtient ou définit le ou les événements à déclencher lorsqu'un nœud auquel l'objet TreeNodeBinding est appliqué est sélectionné.

ShowCheckBox

Obtient ou définit une valeur indiquant si une case à cocher est affichée à côté d'un nœud auquel l'objet TreeNodeBinding est appliqué.

Target

Obtient ou définit la fenêtre ou le frame cible où afficher le contenu de page Web associé à un nœud auquel l'objet TreeNodeBinding est appliqué.

TargetField

Obtient ou définit le nom du champ de la source de données à lier à la propriété Target d'un objet TreeNode auquel l'objet TreeNodeBinding est appliqué.

Text

Obtient ou définit le texte qui est affiché pour le nœud auquel l'objet TreeNodeBinding est appliqué.

TextField

Obtient ou définit le nom du champ de la source de données à lier à la propriété Text d'un objet TreeNode auquel l'objet TreeNodeBinding est appliqué.

ToolTip

Obtient ou définit le texte info-bulle d'un nœud auquel l'objet TreeNodeBinding est appliqué.

ToolTipField

Obtient ou définit le nom du champ de la source de données à lier à la propriété ToolTip d'un objet TreeNode auquel l'objet TreeNodeBinding est appliqué.

Value

Obtient ou définit une valeur affichée que n'est pas affichée mais utilisée pour stocker des données supplémentaires concernant un nœud auquel l'objet TreeNodeBinding est appliqué, telles que les données utilisées pour gérer des événements de publication (postback).

ValueField

Obtient ou définit le nom du champ de la source de données à lier à la propriété Value d'un objet TreeNode auquel l'objet TreeNodeBinding est appliqué.

Méthodes

Equals(Object)

Détermine si l'objet spécifié est égal à l'objet actuel.

(Hérité de Object)
GetHashCode()

Fait office de fonction de hachage par défaut.

(Hérité de Object)
GetType()

Obtient le Type de l'instance actuelle.

(Hérité de Object)
MemberwiseClone()

Crée une copie superficielle du Object actuel.

(Hérité de Object)
ToString()

Retourne la propriété DataMember.

Implémentations d’interfaces explicites

ICloneable.Clone()

Crée une copie de l'objet TreeNodeBinding.

IDataSourceViewSchemaAccessor.DataSourceViewSchema

Pour obtenir une description de ce membre, consultez DataSourceViewSchema.

IStateManager.IsTrackingViewState

Pour obtenir une description de ce membre, consultez IsTrackingViewState.

IStateManager.LoadViewState(Object)

Charge l'état d'affichage enregistré précédemment pour le nœud.

IStateManager.SaveViewState()

Enregistre les modifications de l'état d'affichage apportées à un objet.

IStateManager.TrackViewState()

Demande à l’objet TreeNode d'assurer le suivi des modifications apportées à son état d'affichage.

S’applique à

Voir aussi