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 a un type d’élément Root , un HyperLink contrôle enfant est créé et le RootNodeTemplate et RootNodeStyle peut être appliqué. Si est RootNodeTemplate défini, son ITemplate est appliqué au nœud. Au lieu de cela, est RootNodeStyle défini, il est fusionné avec n’importe quel défini NodeStyle et appliqué. Enfin, si aucun modèle ou style n’est défini, un contrôle de base HyperLink est créé et initialisé avec les valeurs du nœud.

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

Si a SiteMapNodeItem un type d’élément Parent , un HyperLink contrôle enfant est créé et le NodeTemplate et NodeStyle peut être appliqué. Si est NodeTemplate défini, son ITemplate est appliqué au nœud. Si au lieu de cela est NodeStyle défini, il est appliqué.

Enfin, si le SiteMapNodeItem a un type d’élément PathSeparator , un Literal contrôle enfant est créé et les PathSeparatorTemplate et PathSeparatorStyle sont appliqués selon les 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