Exporter (0) Imprimer
Développer tout

TreeNode, classe

Représente un nœud dans le contrôle TreeView.

Espace de noms: System.Web.UI.WebControls
Assembly : System.Web (dans system.web.dll)

public class TreeNode : IStateManager, ICloneable
public class TreeNode implements IStateManager, ICloneable
public class TreeNode implements IStateManager, ICloneable
Non applicable.

Le contrôle TreeView est composé de nœuds. Chaque entrée de l'arborescence est appelée un nœud et est représentée par un objet TreeNode. Un nœud qui contient d'autres nœuds est appelé un nœud parent. Un nœud contenu dans un autre nœud est appelé un nœud enfant. Un nœud qui n'a pas de nœuds enfants est appelé un nœud feuille. Un nœud qui n'est contenu dans aucun autre nœud mais est l'ancêtre de tous les autres nœuds est le nœud racine. Un nœud peut être à la fois un parent et un enfant, mais les nœuds racine, parent et feuille s'excluent mutuellement. Plusieurs propriétés visuelles et comportementales des nœuds sont déterminées par le fait qu'un nœud soit un nœud racine, parent ou feuille.

Bien qu'une arborescence typique ait un seul nœud racine, le contrôle TreeView vous permet d'ajouter plusieurs nœuds racine à votre arborescence. Cette opération est utile lorsque vous souhaitez afficher des listes d'éléments sans afficher un nœud racine principal unique, comme dans une liste de catégories de produits.

Un nœud stocke principalement les données dans deux propriétés, la propriété Text et la propriété Value. La valeur de la propriété Text est affichée dans le contrôle TreeView et la propriété Value permet de stocker toute donnée supplémentaire relative au nœud, comme les données utilisées pour gérer les événements de publication. Un nœud stocke également le chemin d'accès du nœud vers son nœud racine dans la propriété ValuePath. La propriété ValuePath indique la position du nœud par rapport au nœud racine.

RemarqueRemarque :

Les nœuds qui sont au même niveau doivent avoir chacun une valeur unique pour la propriété Value ; le contrôle TreeView ne fait pas la distinction entre les différents nœuds d'un même niveau ayant la même valeur. Dans ce scénario, si l'utilisateur clique sur un nœud qui a une valeur en double, le nœud qui apparaît en premier dans le contrôle TreeView est sélectionné.

Un objet TreeNode est composé des quatre éléments d'interface utilisateur suivants qui peuvent être personnalisés ou masqués :

  • Icône de l'indicateur de nœud d'expansion utilisée pour montrer si le nœud est développé, réduit ou non développable.

  • Case à cocher facultative associée au nœud.

  • Image de nœud facultative.

  • Texte du nœud.

Vous pouvez spécifier une image personnalisée pour les indicateurs de nœud développable, réductible et non développable en définissant les propriétés ExpandImageUrl, CollapseImageUrl et NoExpandImageUrl de la classe TreeView. Les icônes de l'indicateur de nœud d'expansion peuvent même être masquées entièrement en affectant false à la propriété ShowExpandCollapse de la classe TreeView.

Pour afficher une case à cocher en regard d'un nœud, définissez la propriété ShowCheckBoxes de la classe TreeView. Lorsque la propriété ShowCheckBoxes a une valeur différente de TreeNodeType.Node, les cases à cocher sont affichées en regard du type de nœud spécifié. Vous pouvez substituer de manière sélective la case à cocher d'un nœud en définissant la propriété ShowCheckBox du nœud. Lorsqu'une case à cocher est affichée, utilisez la propriété Checked pour déterminer si la case à cocher est activée.

Vous pouvez afficher une image dans un nœud en définissant la propriété ImageUrl. Cette image est affichée en regard du texte du nœud.

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 navigation. Par défaut, un nœud est en mode de sélection. Pour faire passer un nœud en mode navigation, affectez une valeur différente d'une chaîne vide ("") à la propriété NavigateUrl du nœud. Pour faire passer un nœud en mode de sélection, affectez une chaîne vide à la propriété NavigateUrl du nœud.

RemarqueRemarque :

Certains navigateurs Internet ont une limitation qui peut affecter les performances du contrôle TreeView. Par exemple, Microsoft Internet Explorer 6.0 est limité à 2 067 caractères dans les URL qu'il publie. Si le nombre de caractères de l'URL d'un nœud dépasse cette limite, le développement de ce nœud échoue et aucune exception n'est levée.

Par défaut, un clic sur un nœud qui est en mode de sélection permet de publier la page sur le serveur et de déclencher l'événement SelectedNodeChanged. Vous pouvez éventuellement spécifier un événement différent à déclencher en définissant la propriété SelectAction du nœud. Pour plus d'informations, consultez 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.

Lorsqu'un nœud est en mode navigation, tous les événements de sélection sont désactivés pour ce nœud. Lorsqu'un utilisateur clique sur le nœud en mode navigation, il est dirigé vers l'URL spécifiée. Vous pouvez éventuellement définir la propriété Target pour qu'elle spécifie la fenêtre ou frame dans lequel afficher le contenu lié.

La classe TreeNode contient plusieurs propriétés qui sont utilisées pour stocker l'état du nœud. Utilisez la propriété Selected pour déterminer si un nœud est sélectionné. Pour déterminer si le nœud est développé, utilisez la propriété Expanded. La propriété DataBound est utilisée pour déterminer si un nœud est lié aux données. Lorsqu'un nœud est lié aux données, vous pouvez accéder à l'élément de données sous-jacent à l'aide de la propriété DataItem.

La classe fournit plusieurs propriétés qui aident à déterminer la position d'un nœud par rapport aux autres nœuds de l'arborescence. Utilisez la propriété Depth pour déterminer la profondeur du nœud. Vous pouvez obtenir la liste délimitée des nœuds du nœud actuel vers son nœud racine à l'aide de la propriété ValuePath. Pour déterminer le nœud parent du nœud, utilisez la propriété Parent. L'accès aux nœuds enfants s'effectue à l'aide de la collection ChildNodes.

Il n'est pas toujours facile de prédéfinir statiquement une arborescence en raison de la taille des données ou du contenu personnalisé qui dépend des entrées d'utilisateur. De ce fait, le contrôle TreeView prend en charge le remplissage dynamique du nœud. Un nœud peut être rempli au moment de l'exécution lorsqu'il est développé. Notez que vous pouvez obtenir un comportement inattendu si vous rendez persistants les nœuds créés de façon asynchrone. Par exemple, si vous utilisez un thread de travail d'arrière-plan pour remplir des nœuds de façon asynchrone, l'arborescence de nœuds risque de ne pas être remplie immédiatement alors que le contrôle poursuit son exécution dans le cycle de vie restant de la page. Au moment de la publication, le retard de création des nœuds peut poser des problèmes lorsque l'état d'affichage du contrôle est chargé mais que l'arborescence de nœuds n'est pas complètement remplie. Pour plus d'informations sur le remplissage dynamique du nœud, consultez la propriété PopulateOnDemand.

Pour obtenir la liste des valeurs de propriétés initiales d'une instance de TreeNode, consultez le constructeur TreeNode.

L'exemple de code suivant illustre comment installer les frames pour l'exemple de code suivant.


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


L'exemple de code suivant illustre comment utiliser la syntaxe déclarative pour créer des objets TreeNode dans le contrôle TreeView. Cet exemple est utilisé dans le jeu de frames de l'exemple précédent pour afficher une table des matières.


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


System.Object
  System.Web.UI.WebControls.TreeNode

Les membres statiques publics (Shared en Visual Basic) de ce type sont thread-safe. Il n'est pas garanti que les membres d'instance soient thread-safe.

Windows 98, Windows Server 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile pour Pocket PC, Windows Mobile pour Smartphone, Windows Server 2003, Windows XP Édition Media Center, Windows XP Professionnel Édition x64, Windows XP SP2, Windows XP Starter Edition

Microsoft .NET Framework 3.0 est pris en charge sur Windows Vista, Microsoft Windows XP SP2 et Windows Server 2003 SP1.

.NET Framework

Prise en charge dans : 3.0, 2.0

Ajouts de la communauté

AJOUTER
Afficher:
© 2014 Microsoft