SiteMapPath.InitializeItem(SiteMapNodeItem) Metodo

Definizione

Inserisce in un oggetto SiteMapNodeItem, ovvero in un controllo server Web che rappresenta un oggetto SiteMapNode, un set di controlli figlio in base alla funzione del nodo, nonché i modelli e gli stili specificati per il nodo.Populates a SiteMapNodeItem, which is a Web server control that represents a SiteMapNode, with a set of child controls based on the node's function and the specified templates and styles for the node.

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)

Parametri

item
SiteMapNodeItem

Oggetto SiteMapNodeItem da inizializzare.The SiteMapNodeItem to initialize.

Esempio

Nell'esempio di codice riportato di seguito viene illustrato come eseguire l'override del metodo InitializeItem per aggiungere funzionalità a un controllo che deriva da SiteMapPath.The following code example demonstrates how to override the InitializeItem method to add functionality to a control that derives from SiteMapPath. Questo esempio di codice fa parte di un esempio più ampio fornito per la classe SiteMapPath.This code example is part of a larger example provided for the SiteMapPath class.

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

Commenti

Il metodo InitializeItem determina il tipo funzionale del nodo che l'elemento rappresenta controllando la SiteMapNodeItemTypee applica tutti i modelli o gli stili definiti per quel tipo di nodo.The InitializeItem method determines the functional type of node that the item represents by checking the SiteMapNodeItemType, and applies any templates or styles that are defined for that kind of node.

Se il SiteMapNodeItem dispone di un tipo di elemento Root, viene creato un controllo figlio HyperLink ed è possibile applicare la RootNodeTemplate e la RootNodeStyle.If the SiteMapNodeItem has a Root item type, a HyperLink child control is created, and the RootNodeTemplate and RootNodeStyle may be applied. Se la RootNodeTemplate è impostata, il relativo ITemplate viene applicato al nodo.If the RootNodeTemplate is set, its ITemplate is applied to the node. In invece, il RootNodeStyle è impostato, viene unito a qualsiasi NodeStyle definito e applicato.In instead the RootNodeStyle is set, it is merged with any defined NodeStyle and applied. Infine, se non è definito alcun modello o stile, viene creato un controllo HyperLink di base che viene inizializzato con i valori del nodo.Finally, if no templates or styles are defined, a basic HyperLink control is created and initialized with values from the node.

Se il SiteMapNodeItem dispone di un Current tipo di elemento, viene creato un Literal o HyperLink controllo figlio, a seconda del valore restituito di RenderCurrentNodeAsLink.If the SiteMapNodeItem has a Current item type, either a Literal or HyperLink child control is created, depending on the return value of RenderCurrentNodeAsLink. È quindi possibile applicare il CurrentNodeTemplate o CurrentNodeStyle.Then either the CurrentNodeTemplate or CurrentNodeStyle may be applied. Se la CurrentNodeTemplate è impostata, il relativo ITemplate viene applicato al nodo.If the CurrentNodeTemplate is set, its ITemplate is applied to the node. Se invece il CurrentNodeStyle è impostato, viene unito a qualsiasi NodeStyle definito e applicato.If instead the CurrentNodeStyle is set, it is merged with any defined NodeStyle and applied.

Se il SiteMapNodeItem dispone di un Parent tipo di elemento, viene creato un controllo figlio HyperLink e è possibile applicare il NodeTemplate e la NodeStyle.If the SiteMapNodeItem has a Parent item type, a HyperLink child control is created and the NodeTemplate and NodeStyle may be applied. Se la NodeTemplate è impostata, il relativo ITemplate viene applicato al nodo.If the NodeTemplate is set, its ITemplate is applied to the node. Se invece il NodeStyle è impostato, viene applicato.If instead the NodeStyle is set, it is applied.

Infine, se il SiteMapNodeItem dispone di un PathSeparator tipo di elemento, viene creato un controllo figlio Literal e i PathSeparatorTemplate e PathSeparatorStyle vengono applicati in base alle stesse regole generali definite per un tipo di nodo Parent.Finally, if the SiteMapNodeItem has a PathSeparator item type, a Literal child control is created and the PathSeparatorTemplate and PathSeparatorStyle are applied according to the same general rules defined for a Parent node type.

Eseguire l'override del metodo InitializeItem per modificare singoli oggetti di SiteMapNodeItem.Override the InitializeItem method to manipulate individual SiteMapNodeItem objects. Se la progettazione della classe richiede un controllo più ampio sulla modalità di creazione e aggiunta degli oggetti SiteMapNodeItem al controllo SiteMapPath, eseguire l'override del metodo CreateControlHierarchy.If the design of the class requires more extensive control over how the SiteMapNodeItem objects are created and added to the SiteMapPath control, override the CreateControlHierarchy method.

Si applica a

Vedi anche