Udostępnij za pośrednictwem


SiteMapPath.InitializeItem(SiteMapNodeItem) Metoda

Definicja

SiteMapNodeItemWypełnia element , który jest kontrolką serwera sieci Web, która reprezentuje SiteMapNodeelement , z zestawem kontrolek podrzędnych opartych na funkcji węzła oraz określonych szablonów i stylów dla węzła.

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)

Parametry

item
SiteMapNodeItem

Element SiteMapNodeItem do zainicjowania.

Przykłady

W poniższym przykładzie kodu pokazano, jak zastąpić metodę InitializeItem w celu dodania funkcji do kontrolki pochodzącej z klasy SiteMapPath. Ten przykład kodu jest częścią większego przykładu udostępnionego SiteMapPath dla klasy .

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

Uwagi

Metoda InitializeItem określa typ funkcjonalny węzła reprezentowanego przez element przez sprawdzenie SiteMapNodeItemTypeelementu i stosuje wszystkie szablony lub style zdefiniowane dla tego rodzaju węzła.

Jeśli element SiteMapNodeItem ma Root typ elementu, zostanie utworzona kontrolka HyperLink podrzędna i może zostać zastosowana kontrolka RootNodeTemplate i RootNodeStyle . Jeśli parametr RootNodeTemplate jest ustawiony, zostanie ITemplate zastosowany do węzła. Zamiast tego jest ustawiona RootNodeStyle , jest scalona z dowolnym zdefiniowanym NodeStyle i zastosowanym. Na koniec, jeśli nie zdefiniowano szablonów lub stylów, zostanie utworzona podstawowa HyperLink kontrolka z wartościami z węzła.

Jeśli element SiteMapNodeItem ma Current typ elementu, zostanie utworzona kontrolka Literal lub HyperLink podrzędna, w zależności od zwracanej RenderCurrentNodeAsLinkwartości . Następnie można zastosować wartość CurrentNodeTemplate lub CurrentNodeStyle . Jeśli parametr CurrentNodeTemplate jest ustawiony, zostanie ITemplate zastosowany do węzła. Jeśli zamiast tego jest ustawiona CurrentNodeStyle , jest scalona z dowolnym zdefiniowanym NodeStyle i zastosowanym.

Jeśli element SiteMapNodeItem ma Parent typ elementu, zostanie utworzona kontrolka HyperLink podrzędna i może zostać zastosowana kontrolka NodeTemplate i NodeStyle . Jeśli parametr NodeTemplate jest ustawiony, zostanie ITemplate zastosowany do węzła. Jeśli zamiast tego NodeStyle parametr jest ustawiony, zostanie zastosowany.

Na koniec, jeśli element SiteMapNodeItem ma PathSeparator typ elementu, Literal tworzona jest kontrolka podrzędna i PathSeparatorTemplatePathSeparatorStyle stosowane zgodnie z tymi samymi ogólnymi regułami zdefiniowanymi dla typu węzła Parent .

Zastąpij metodę InitializeItem w celu manipulowania poszczególnymi SiteMapNodeItem obiektami. Jeśli projekt klasy wymaga bardziej rozbudowanej kontroli nad sposobem SiteMapNodeItem tworzenia i dodawania obiektów do kontrolki SiteMapPath , przesłoń metodę CreateControlHierarchy .

Dotyczy

Zobacz też