TreeNode Classe

Définition

Représente un nœud dans le contrôle TreeView.Represents a node in the TreeView control.

public ref class TreeNode : ICloneable, System::Web::UI::IStateManager
public class TreeNode : ICloneable, System.Web.UI.IStateManager
type TreeNode = class
    interface IStateManager
    interface ICloneable
Public Class TreeNode
Implements ICloneable, IStateManager
Héritage
TreeNode
Implémente

Exemples

L’exemple de code suivant montre comment configurer les frames pour l’exemple de code suivant.The following code example demonstrates how to set up the frames for the next code example.


<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title>TreeView Frameset Example</title>
</head>
         
    <frameset cols="30%, 75%">
   
        <frame title="MenuFrame" name="Menu" src="TreeViewFramecs.aspx"/>
        <frame title="ContentFrame" name="Content" src="Home.aspx"/> 
           
    </frameset>      
   
</html>


<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title>TreeView Frameset Example</title>
</head>
         
    <frameset cols="30%, 75%">
   
        <frame title="MenuFrame" name="Menu" src="TreeViewFramevb.aspx"/>
        <frame title="ContentFrame" name="Content" src="Home.aspx"/> 
           
    </frameset>      
   
</html>

L’exemple de code suivant montre comment utiliser la syntaxe déclarative pour créer des TreeNode objets dans le contrôle TreeView.The following code example demonstrates how to use declarative syntax to create TreeNode objects in the TreeView control. Cet exemple est utilisé dans le jeu de frames de l’exemple précédent pour afficher une table des matières.This example is used within the frameset of the previous example to display a table of contents.


<%@ 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 Declarative Syntax Example</title>
</head>
<body>
    <form id="form1" runat="server">
    
      <h3>TreeView Declarative Syntax Example</h3>
      
      <asp:TreeView id="SampleTreeView" 
        runat="server">
         
        <Nodes>
        
          <asp:TreeNode Value="Home" 
            NavigateUrl="Home.aspx" 
            Text="Home"
            Target="Content" 
            Expanded="True">
             
            <asp:TreeNode Value="Page 1" 
              NavigateUrl="Page1.aspx" 
              Text="Page1"
              Target="Content">
               
              <asp:TreeNode Value="Section 1" 
                NavigateUrl="Section1.aspx" 
                Text="Section 1"
                Target="Content"/>
                 
            </asp:TreeNode>              
            
            <asp:TreeNode Value="Page 2" 
              NavigateUrl="Page2.aspx"
              Text="Page 2"
              Target="Content">
               
            </asp:TreeNode> 
            
          </asp:TreeNode>
        
        </Nodes>
        
      </asp:TreeView>

    </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 Declarative Syntax Example</title>
</head>
<body>
    <form id="form1" runat="server">
    
      <h3>TreeView Declarative Syntax Example</h3>
      
      <asp:TreeView id="SampleTreeView" 
        runat="server">
         
        <Nodes>
        
          <asp:TreeNode Value="Home" 
            NavigateUrl="Home.aspx" 
            Text="Home"
            Target="Content" 
            Expanded="True">
             
            <asp:TreeNode Value="Page 1" 
              NavigateUrl="Page1.aspx" 
              Text="Page1"
              Target="Content">
               
              <asp:TreeNode Value="Section 1" 
                NavigateUrl="Section1.aspx" 
                Text="Section 1"
                Target="Content"/>
                 
            </asp:TreeNode>              
            
            <asp:TreeNode Value="Page 2" 
              NavigateUrl="Page2.aspx"
              Text="Page 2"
              Target="Content">
               
            </asp:TreeNode> 
            
          </asp:TreeNode>
        
        </Nodes>
        
      </asp:TreeView>

    </form>
  </body>
</html>

Remarques

Le contrôle TreeView est constitué de nœuds.The TreeView control is made up of nodes. Chaque entrée de l’arborescence est appelée un nœud et est représentée par un objet TreeNode.Each entry in the tree is called a node and is represented by a TreeNode object. Un nœud qui contient d’autres nœuds est appelé nœud parent.A node that contains other nodes is called a parent node. Un nœud qui est contenu dans un autre nœud est appelé nœud enfant.A node that is contained by another node is called a child node. Un nœud qui n’a pas de nœuds enfants est appelé nœud terminal.A node that has no child nodes is called a leaf node. Un nœud qui n’est pas contenu par un autre nœud, mais qui est l’ancêtre de tous les autres nœuds est le nœud racine.A node that is not contained by any other node but is the ancestor to all the other nodes is the root node. Un nœud peut être à la fois un parent et un enfant, mais les nœuds racine, parent et feuille s’excluent mutuellement.A node can be both a parent and a child, but root, parent, and leaf nodes are mutually exclusive. Plusieurs propriétés visuelles et comportementales des nœuds sont déterminées par le fait qu’un nœud est un nœud racine, parentou feuille .Several visual and behavioral properties of nodes are determined by whether a node is a root, parent, or leaf node.

Bien qu’une arborescence classique n’ait qu’un seul nœud racine, le contrôle TreeView vous permet d’ajouter plusieurs nœuds racine à votre arborescence.Although a typical tree has only one root node, the TreeView control allows you to add multiple root nodes to your tree structure. Cela est utile lorsque vous souhaitez afficher les listes d’éléments sans afficher un seul nœud racine principal, comme dans une liste de catégories de produits.This is useful when you want to display item listings without displaying a single main root node, as in a list of product categories.

Un nœud stocke principalement les données dans deux propriétés : la propriété Text et la propriété Value.A node primarily stores data in two properties, the Text property and the Value property. La valeur de la propriété Text s’affiche dans le contrôle TreeView, et la propriété Value est utilisée pour stocker toutes les données supplémentaires relatives au nœud, telles que les données utilisées pour gérer les événements de publication (postback).The value of the Text property is displayed in the TreeView control, and the Value property is used to store any additional data about the node, such as data used for handling postback events. Un nœud stocke également le chemin d’accès du nœud à son nœud racine dans la propriété ValuePath.A node also stores the path from the node to its root node in the ValuePath property. La propriété ValuePath indique la position du nœud par rapport au nœud racine.The ValuePath property indicates the node's position relative to the root node.

Notes

Les nœuds au même niveau doivent avoir chacun une valeur unique pour la propriété Value ; le contrôle TreeView ne peut pas faire la distinction entre les différents nœuds au même niveau qui ont la même valeur.Nodes at the same level must each have a unique value for the Value property; the TreeView control cannot distinguish between different nodes at the same level that have the same value. Dans ce scénario, si l’utilisateur clique sur un nœud qui a une valeur dupliquée, le nœud qui apparaît en premier dans le contrôle TreeView est sélectionné.In this scenario, if the user clicks a node that has a duplicate value, the node that appears first in the TreeView control is selected.

Un objet TreeNode est constitué des quatre éléments d’interface utilisateur (IU) suivants, qui peuvent être personnalisés ou masqués :A TreeNode object is made up of the following four user interface (UI) elements, which can be customized or hidden:

  • Icône d’indicateur de nœud de développement utilisée pour indiquer si le nœud est développé, réduit ou non développable.An expansion node indicator icon used to show whether the node is expanded, collapsed, or non-expandable.

  • Case à cocher facultative associée au nœud.An optional check box associated with the node.

  • Image de nœud facultative.An optional node image.

  • Texte du nœud.The node text.

Vous pouvez spécifier une image personnalisée pour les indicateurs de nœud pouvant être développés, réductibles et non développables en définissant les propriétés ExpandImageUrl, CollapseImageUrlet NoExpandImageUrl de la classe TreeView.You can specify a custom image for the expandable, collapsible, and non-expandable node indicators by setting the ExpandImageUrl, CollapseImageUrl, and NoExpandImageUrl properties of the TreeView class. Les icônes d’indicateur de nœud de développement peuvent même être entièrement masquées en définissant la propriété ShowExpandCollapse de la classe TreeView sur false.The expansion node indicator icons can even be hidden entirely by setting the ShowExpandCollapse property of the TreeView class to false.

Pour afficher une case à cocher en regard d’un nœud, définissez la propriété ShowCheckBoxes de la classe TreeView.To display a check box next to a node, set the ShowCheckBoxes property of the TreeView class. Lorsque la propriété ShowCheckBoxes est définie sur une valeur autre que TreeNodeType.Node, les cases à cocher s’affichent en regard du type de nœud spécifié.When the ShowCheckBoxes property is set to a value other than TreeNodeType.Node, check boxes are displayed next to the specified node type. Vous pouvez substituer de manière sélective la case à cocher d’un nœud individuel en définissant la propriété ShowCheckBox du nœud.You can selectively override the check box of an individual node by setting the node's ShowCheckBox property. Quand une case à cocher est affichée, utilisez la propriété Checked pour déterminer si la case à cocher est activée.When a check box is displayed, use the Checked property to determine whether the check box is selected.

Vous pouvez afficher une image dans un nœud en définissant la propriété ImageUrl.You can display an image in a node by setting the ImageUrl property. Cette image est affichée en regard du texte du nœud.This image is displayed next to the node text.

Le texte d’un nœud dans le contrôle TreeView peut être dans l’un des deux modes : mode de sélection ou mode de navigation.The text of a node in the TreeView control can be in one of two modes: selection mode or navigation mode. Par défaut, un nœud est en mode de sélection.By default, a node is in selection mode. Pour mettre un nœud en mode de navigation, définissez la propriété NavigateUrl du nœud sur une valeur autre qu’une chaîne vide ("").To put a node into navigation mode, set the node's NavigateUrl property to a value other than an empty string (""). Pour mettre un nœud en mode de sélection, définissez la propriété NavigateUrl du nœud sur une chaîne vide.To put a node into selection mode, set the node's NavigateUrl property to an empty string.

Notes

Certains navigateurs Internet ont une limitation qui peut affecter les performances du contrôle TreeView.Some Internet browsers have a limitation that can affect the performance of the TreeView control. Par exemple, Microsoft Internet Explorer 6,0 a une limite de caractères d’URL de 2067 caractères qu’il publie.For example, Microsoft Internet Explorer 6.0 has a URL character limit of 2067 characters that it posts. Si le nombre de caractères dans une URL d’un nœud est supérieur à ce nombre, le développement de ce nœud échouera et aucune exception ne sera levée.If the number of characters in a URL of a node is larger than that number, expanding that node will fail and no exception is thrown.

Par défaut, le fait de cliquer sur un nœud qui est en mode de sélection publie la page sur le serveur et déclenche l’événement SelectedNodeChanged.By default, clicking a node that is in selection mode posts the page back to the server and raises the SelectedNodeChanged event. Vous pouvez éventuellement spécifier un événement différent à déclencher en définissant la propriété SelectAction du nœud.You can optionally specify a different event to raise by setting the node's SelectAction property. Pour plus d’informations, consultez SelectAction.For more information, see SelectAction. Pour déterminer le nœud sur lequel l’utilisateur a cliqué en mode de sélection, utilisez la propriété SelectedNode du contrôle TreeView.To determine which node was clicked in selection mode, use the SelectedNode property of the TreeView control.

Lorsqu’un nœud est en mode de navigation, tous les événements de sélection sont désactivés pour ce nœud.When a node is in navigation mode, all selection events are disabled for that node. Si vous cliquez sur le nœud en mode de navigation, l’utilisateur est dirigé vers l’URL spécifiée.Clicking the node in navigation mode directs the user to the specified URL. Vous pouvez éventuellement définir la propriété Target pour spécifier la fenêtre ou le frame dans lequel afficher le contenu lié.You can optionally set the Target property to specify the window or frame in which to display the linked content.

La classe TreeNode contient plusieurs propriétés utilisées pour stocker l’état du nœud.The TreeNode class contains several properties that are used to store the state of the node. Utilisez la propriété Selected pour déterminer si un nœud est sélectionné.Use the Selected property to determine whether a node is selected. Pour déterminer si le nœud est développé, utilisez la propriété Expanded.To determine whether the node is expanded, use the Expanded property. La propriété DataBound permet de déterminer si un nœud est lié aux données.The DataBound property is used to determine whether a node is bound to data. Lorsqu’un nœud est lié à des données, vous pouvez accéder à l’élément de données sous-jacent à l’aide de la propriété DataItem.When a node is bound to data, you can access the underlying data item by using the DataItem property.

La classe fournit plusieurs propriétés qui permettent de déterminer la position d’un nœud par rapport à d’autres nœuds de l’arborescence.The class provides several properties that help to determine the position of a node relative to other nodes in the tree. Utilisez la propriété Depth pour déterminer la profondeur du nœud.Use the Depth property to determine the depth of the node. Vous pouvez récupérer la liste délimitée des nœuds du nœud actuel vers son nœud racine à l’aide de la propriété ValuePath.You can get the delimited list of nodes from the current node to its root node by using the ValuePath property. Pour déterminer le nœud parent du nœud, utilisez la propriété Parent.To determine the node's parent node, use the Parent property. Les nœuds enfants sont accessibles à l’aide de la collection ChildNodes.Child nodes are accessed using the ChildNodes collection.

Parfois, il n’est pas pratique de prédéfinir statiquement la structure d’arborescence en raison de la taille des données ou du contenu personnalisé qui dépend de l’entrée de l’utilisateur.Sometimes, it is not practical to statically predefine the tree structure due to data size or custom content that depends on user input. Pour cette raison, le contrôle de TreeView prend en charge le remplissage de nœuds dynamiques.Because of this, the TreeView control supports dynamic node population. Un nœud peut être renseigné au moment de l’exécution lorsqu’il est développé.A node can be populated at run time when it is expanded. Notez que vous pouvez recevoir un comportement inattendu si vous conservez des nœuds créés de manière asynchrone.Note that you can get unexpected behavior if you persist asynchronously created nodes. Par exemple, si vous utilisez un thread de travail en arrière-plan pour remplir des nœuds de façon asynchrone, l’arborescence de nœuds peut ne pas être remplie immédiatement si le contrôle continue avec le reste du cycle de vie de la page.For example, if you use a background worker thread to populate nodes asynchronously, the node tree might not be populated immediately though the control proceeds with the rest of the page life cycle. Lors de la publication, la création différée des nœuds peut provoquer des problèmes lorsque l’état d’affichage du contrôle est chargé, mais que l’arborescence du nœud n’est pas entièrement remplie.On postback, the delayed creation of the nodes can cause problems when the control's view state is loaded but the node tree is not fully populated. Pour plus d’informations sur le remplissage de nœuds dynamiques, consultez la propriété PopulateOnDemand.For more information on dynamic node population, see the PopulateOnDemand property.

Pour obtenir la liste des valeurs de propriétés initiales d’une instance de TreeNode, consultez le constructeur TreeNode.For a list of initial property values for an instance of TreeNode, see the TreeNode constructor.

Constructeurs

TreeNode()

Initialise une nouvelle instance de la classe TreeNode sans texte ni valeur.Initializes a new instance of the TreeNode class without text or a value.

TreeNode(String)

Initialise une nouvelle instance de la classe TreeNode avec le texte spécifié.Initializes a new instance of the TreeNode class using the specified text.

TreeNode(String, String)

Initialise une nouvelle instance de la classe TreeNode à l'aide du texte et de la valeur spécifiés.Initializes a new instance of the TreeNode class using the specified text and value.

TreeNode(String, String, String)

Initialise une nouvelle instance de la classe TreeNode à l'aide du texte, de la valeur et de l'URL d'image spécifiés.Initializes a new instance of the TreeNode class using the specified text, value, and image URL.

TreeNode(String, String, String, String, String)

Initialise une nouvelle instance de la classe TreeNode à l'aide du texte, de la valeur, de l'URL d'image, de l'URL de navigation et de la cible spécifiés.Initializes a new instance of the TreeNode class using the specified text, value, image URL, navigation URL, and target.

TreeNode(TreeView, Boolean)

Initialise une nouvelle instance de la classe TreeNode à l'aide du propriétaire spécifié.Initializes a new instance of the TreeNode class using the specified owner.

Propriétés

Checked

Obtient ou définit une valeur qui indique si la case à cocher du nœud est activée.Gets or sets a value that indicates whether the node's check box is selected.

ChildNodes

Obtient une collection TreeNodeCollection qui contient les nœuds enfants de premier niveau du nœud actuel.Gets a TreeNodeCollection collection that contains the first-level child nodes of the current node.

DataBound

Obtient une valeur qui indique si le nœud a été créé via une liaison de données.Gets a value that indicates whether the node was created through data binding.

DataItem

Obtient l'élément de données qui est lié au contrôle.Gets the data item that is bound to the control.

DataPath

Obtient le chemin d'accès aux données liées au nœud.Gets the path to the data bound to the node.

Depth

Obtient la profondeur du nœud.Gets the depth of the node.

Expanded

Obtient ou définit une valeur qui indique si le nœud est développé.Gets or sets a value that indicates whether the node is expanded.

ImageToolTip

Obtient ou définit le texte d'info-bulle pour l'image affichée en regard d'un nœud.Gets or sets the ToolTip text for the image displayed next to a node.

ImageUrl

Obtient ou définit l'URL vers une image qui est affichée en regard du nœud.Gets or sets the URL to an image that is displayed next to the node.

IsTrackingViewState

Obtient une valeur qui indique si le nœud enregistre les modifications apportées à son état d'affichage.Gets a value that indicates whether the node is saving changes to its view state.

NavigateUrl

Obtient ou définit l'URL à laquelle accéder lorsqu'un clic est effectué sur le nœud.Gets or sets the URL to navigate to when the node is clicked.

Parent

Obtient le nœud parent du nœud actuel.Gets the parent node of the current node.

PopulateOnDemand

Obtient ou définit une valeur qui indique si le nœud est rempli dynamiquement.Gets or sets a value that indicates whether the node is populated dynamically.

SelectAction

Obtient ou définit l'événement ou les événements à déclencher lorsqu'un nœud est sélectionné.Gets or sets the event or events to raise when a node is selected.

Selected

Obtient ou définit une valeur qui indique si le nœud est sélectionné.Gets or sets a value that indicates whether the node is selected.

ShowCheckBox

Obtient ou définit une valeur qui indique si une case à cocher est affichée en regard du nœud.Gets or sets a value that indicates whether a check box is displayed next to the node.

Target

Obtient ou définit la fenêtre ou frame cible dans lequel afficher le contenu de la page Web associé à un nœud.Gets or sets the target window or frame in which to display the Web page content associated with a node.

Text

Obtient ou définit le texte affiché pour le nœud dans le contrôle TreeView.Gets or sets the text displayed for the node in the TreeView control.

ToolTip

Obtient ou définit le texte d'info-bulle pour le nœud.Gets or sets the ToolTip text for the node.

Value

Obtient ou définit une valeur non affichée utilisée pour stocker des données supplémentaires relatives au nœud, telles que les données utilisées pour la gestion des événements de publication.Gets or sets a non-displayed value used to store any additional data about the node, such as data used for handling postback events.

ValuePath

Obtient le chemin d'accès du nœud racine vers le nœud actuel.Gets the path from the root node to the current node.

Méthodes

Clone()

Crée une nouvelle instance de la classe TreeNode avec les propriétés de l'instance de TreeNode actuelle.Creates a new instance of the TreeNode class with the properties of the current TreeNode instance.

Collapse()

Réduit le nœud d'arbre actuel.Collapses the current tree node.

CollapseAll()

Réduit le nœud actuel et tous ses nœuds enfants.Collapses the current node and all its child nodes.

Equals(Object)

Détermine si l'objet spécifié est égal à l'objet actuel.Determines whether the specified object is equal to the current object.

(Hérité de Object)
Expand()

Développe le nœud d'arbre actuel.Expands the current tree node.

ExpandAll()

Développe le nœud actuel et tous ses nœuds enfants.Expands the current node and all its child nodes.

GetHashCode()

Sert de fonction de hachage par défaut.Serves as the default hash function.

(Hérité de Object)
GetType()

Obtient le Type de l'instance actuelle.Gets the Type of the current instance.

(Hérité de Object)
LoadViewState(Object)

Charge l'état d'affichage précédemment enregistré du nœud.Loads the previously saved view state of the node.

MemberwiseClone()

Crée une copie superficielle du Object actuel.Creates a shallow copy of the current Object.

(Hérité de Object)
RenderPostText(HtmlTextWriter)

Permet aux développeurs de contrôles d'ajouter un rendu supplémentaire au nœud.Allows control developers to add additional rendering to the node.

RenderPreText(HtmlTextWriter)

Permet aux développeurs de contrôles d'ajouter un rendu supplémentaire au nœud.Allows control developers to add additional rendering to the node.

SaveViewState()

Enregistre l'état d'affichage actuel du nœud.Saves the current view state of the node.

Select()

Sélectionne le nœud actuel dans le contrôle TreeView.Selects the current node in the TreeView control.

ToggleExpandState()

Alterne entre l'état développé et réduit du nœud.Alternates between the expanded and collapsed state of the node.

ToString()

Retourne une chaîne qui représente l'objet actif.Returns a string that represents the current object.

(Hérité de Object)
TrackViewState()

Marque le point de début du suivi et de l'enregistrement des modifications d'état d'affichage apportées au nœud.Marks the starting point at which to begin tracking and saving view state changes to the node.

Implémentations d’interfaces explicites

ICloneable.Clone()

Crée une copie de l'objet TreeNode.Creates a copy of the TreeNode object.

IStateManager.IsTrackingViewState

Pour obtenir une description de ce membre, consultez IsTrackingViewState.For a description of this member, see IsTrackingViewState.

IStateManager.LoadViewState(Object)

Charge l'état d'affichage précédemment enregistré du nœud.Loads the node's previously saved view state.

IStateManager.SaveViewState()

Enregistre les modifications d'état d'affichage apportées à un Object.Saves the view state changes to a Object.

IStateManager.TrackViewState()

Demande à l’objet TreeNode d'assurer le suivi des modifications apportées à son état d'affichage.Instructs the TreeNode object to track changes to its view state.

S’applique à

Voir aussi