SiteMapPath.InitializeItem(SiteMapNodeItem) Méthode

Définition

Remplit un SiteMapNodeItem, qui est un contrôle serveur Web qui représente un SiteMapNode, avec un jeu de contrôles enfants selon la fonction du nœud ainsi que des modèles et des styles spécifiés pour celui-ci.

protected:
 virtual void InitializeItem(System::Web::UI::WebControls::SiteMapNodeItem ^ item);
protected virtual void InitializeItem (System.Web.UI.WebControls.SiteMapNodeItem item);
abstract member InitializeItem : System.Web.UI.WebControls.SiteMapNodeItem -> unit
override this.InitializeItem : System.Web.UI.WebControls.SiteMapNodeItem -> unit
Protected Overridable Sub InitializeItem (item As SiteMapNodeItem)

Paramètres

item
SiteMapNodeItem

Objet SiteMapNodeItem à initialiser.

Exemples

L’exemple de code suivant montre comment remplacer la InitializeItem méthode pour ajouter des fonctionnalités à un contrôle qui dérive de SiteMapPath. Cet exemple de code fait partie d’un exemple plus grand fourni pour la SiteMapPath classe.

// Override the InitializeItem method to add a PathSeparator
// and DropDownList to the current node.
protected override void InitializeItem(SiteMapNodeItem item) {

    // The only node that must be handled is the CurrentNode.
    if (item.ItemType == SiteMapNodeItemType.Current)
    {
        HyperLink hLink = new HyperLink();

        // No Theming for the HyperLink.
        hLink.EnableTheming = false;
        // Enable the link of the SiteMapPath is enabled.
        hLink.Enabled = this.Enabled;

        // Set the properties of the HyperLink to
        // match those of the corresponding SiteMapNode.
        hLink.NavigateUrl = item.SiteMapNode.Url;
        hLink.Text        = item.SiteMapNode.Title;
        if (ShowToolTips) {
            hLink.ToolTip = item.SiteMapNode.Description;
        }

        // Apply styles or templates to the HyperLink here.
        // ...
        // ...

        // Add the item to the Controls collection.
        item.Controls.Add(hLink);

        AddDropDownListAfterCurrentNode(item);
    }
    else {
        base.InitializeItem(item);
    }
}
' Override the InitializeItem method to add a PathSeparator
' and DropDownList to the current node.
Protected Overrides Sub InitializeItem(item As SiteMapNodeItem)

   ' The only node that must be handled is the CurrentNode.
   If item.ItemType = SiteMapNodeItemType.Current Then
      Dim hLink As New HyperLink()

      ' No Theming for the HyperLink.
      hLink.EnableTheming = False
      ' Enable the link of the SiteMapPath is enabled.
      hLink.Enabled = Me.Enabled

      ' Set the properties of the HyperLink to
      ' match those of the corresponding SiteMapNode.
      hLink.NavigateUrl = item.SiteMapNode.Url
      hLink.Text = item.SiteMapNode.Title
      If ShowToolTips Then
         hLink.ToolTip = item.SiteMapNode.Description
      End If

      ' Apply styles or templates to the HyperLink here.
      ' ...
      ' ...
      ' Add the item to the Controls collection.
      item.Controls.Add(hLink)

      AddDropDownListAfterCurrentNode(item)
   Else
      MyBase.InitializeItem(item)
   End If
End Sub

Remarques

La InitializeItem méthode détermine le type fonctionnel de nœud que l’élément représente en vérifiant le SiteMapNodeItemType, et applique tous les modèles ou styles définis pour ce type de nœud.

Si le SiteMapNodeItem type d’élément Root est associé, un HyperLink contrôle enfant est créé et peut RootNodeStyle RootNodeTemplate être appliqué. Si la RootNodeTemplate valeur est définie, elle ITemplate est appliquée au nœud. Au lieu de cela, il RootNodeStyle est fusionné avec n’importe quelle définition NodeStyle et appliquée. Enfin, si aucun modèle ou style n’est défini, un contrôle de base HyperLink est créé et initialisé avec des valeurs du nœud.

Si le SiteMapNodeItem type d’élément Current est créé, un contrôle enfant ou HyperLink un Literal contrôle est créé, en fonction de la valeur de retour de RenderCurrentNodeAsLink. Ensuite, le CurrentNodeTemplate ou CurrentNodeStyle peut être appliqué. Si la CurrentNodeTemplate valeur est définie, elle ITemplate est appliquée au nœud. Si au lieu de cela, il CurrentNodeStyle est fusionné avec n’importe quelle définition NodeStyle et appliquée.

Si le SiteMapNodeItem type d’élément Parent est associé, un HyperLink contrôle enfant est créé et NodeStyle NodeTemplate peut être appliqué. Si la NodeTemplate valeur est définie, elle ITemplate est appliquée au nœud. Si la NodeStyle valeur est définie, elle est appliquée.

Enfin, si le SiteMapNodeItem type d’élément est PathSeparator défini, un Literal contrôle enfant est créé et appliqué PathSeparatorTemplate PathSeparatorStyle conformément aux mêmes règles générales définies pour un Parent type de nœud.

Remplacez la InitializeItem méthode pour manipuler des objets individuels SiteMapNodeItem . Si la conception de la classe nécessite un contrôle plus étendu sur la façon dont les SiteMapNodeItem objets sont créés et ajoutés au SiteMapPath contrôle, remplacez la CreateControlHierarchy méthode.

S’applique à

Voir aussi