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.

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.

Esempio

Nell'esempio di codice seguente viene illustrato come eseguire l'override del InitializeItem metodo per aggiungere funzionalità a un controllo che deriva da SiteMapPath. Questo esempio di codice fa parte di un esempio più ampio fornito per 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

Commenti

Il InitializeItem metodo determina il tipo funzionale di nodo rappresentato dall'elemento controllando e SiteMapNodeItemTypeapplica tutti i modelli o gli stili definiti per quel tipo di nodo.

Se ha SiteMapNodeItem un tipo di elemento, viene creato un RootHyperLink controllo figlio e RootNodeTemplate può essere applicato e RootNodeStyle . Se l'oggetto RootNodeTemplate è impostato, il relativo ITemplate viene applicato al nodo. Viene invece RootNodeStyle impostato, viene unito a qualsiasi definito NodeStyle e applicato. Infine, se non sono definiti modelli o stili, viene creato e inizializzato un controllo di base HyperLink con i valori del nodo.

Se ha SiteMapNodeItem un Current tipo di elemento, viene creato un Literal controllo o HyperLink figlio, a seconda del valore restituito di RenderCurrentNodeAsLink. Quindi è possibile applicare o CurrentNodeTemplateCurrentNodeStyle . Se l'oggetto CurrentNodeTemplate è impostato, il relativo ITemplate viene applicato al nodo. Se invece CurrentNodeStyle è impostato, viene unito a qualsiasi definito NodeStyle e applicato.

Se ha SiteMapNodeItem un Parent tipo di elemento, viene creato un HyperLink controllo figlio e NodeTemplate può essere applicato e NodeStyle . Se l'oggetto NodeTemplate è impostato, il relativo ITemplate viene applicato al nodo. Se invece NodeStyle è impostato, viene applicato.

Infine, se ha SiteMapNodeItem un PathSeparator tipo di elemento, viene creato un Literal controllo figlio e PathSeparatorTemplatePathSeparatorStyle vengono applicati in base alle stesse regole generali definite per un Parent tipo di nodo.

Eseguire l'override del InitializeItem metodo per modificare singoli SiteMapNodeItem oggetti. Se la progettazione della classe richiede un controllo più ampio sulla modalità SiteMapNodeItem di creazione e aggiunta degli oggetti al controllo, eseguire l'override SiteMapPath del CreateControlHierarchy metodo .

Si applica a

Vedi anche