SiteMapPath.InitializeItem(SiteMapNodeItem) Method

Definition

Заполняет SiteMapNodeItem, являющийся элементом управления веб-сервера, представляющим SiteMapNode с набором дочерних элементов управления, основывающихся на функции узла и указанных шаблонах и стилях.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)

Parameters

item
SiteMapNodeItem

Объект SiteMapNodeItem для инициализации.The SiteMapNodeItem to initialize.

Examples

В следующем примере кода показано, как переопределить метод InitializeItem, чтобы добавить функциональные возможности в элемент управления, производный от SiteMapPath.The following code example demonstrates how to override the InitializeItem method to add functionality to a control that derives from SiteMapPath. Этот пример кода является частью большого примера, приведенного для класса 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

Remarks

Метод InitializeItem определяет функциональный тип узла, который представляет элемент, путем проверки SiteMapNodeItemTypeи применяет все шаблоны или стили, определенные для этого типа узла.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.

Если SiteMapNodeItem имеет тип элемента Root, то создается HyperLink дочерний элемент управления, RootNodeTemplate и RootNodeStyle могут быть применены.If the SiteMapNodeItem has a Root item type, a HyperLink child control is created, and the RootNodeTemplate and RootNodeStyle may be applied. Если задано значение RootNodeTemplate, его ITemplate применяется к узлу.If the RootNodeTemplate is set, its ITemplate is applied to the node. В вместо этого RootNodeStyle задается, объединяется с любыми определенными NodeStyle и применяется.In instead the RootNodeStyle is set, it is merged with any defined NodeStyle and applied. Наконец, если шаблоны или стили не определены, создается базовый HyperLink элемент управления, который инициализируется значениями из узла.Finally, if no templates or styles are defined, a basic HyperLink control is created and initialized with values from the node.

Если SiteMapNodeItem имеет тип элемента Current, создается либо дочерний элемент управления Literal, либо HyperLink, в зависимости от возвращаемого значения 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. Затем можно применить либо CurrentNodeTemplate, либо CurrentNodeStyle.Then either the CurrentNodeTemplate or CurrentNodeStyle may be applied. Если задано значение CurrentNodeTemplate, его ITemplate применяется к узлу.If the CurrentNodeTemplate is set, its ITemplate is applied to the node. Если вместо этого задается CurrentNodeStyle, она объединяется с любыми определенными NodeStyle и применяется.If instead the CurrentNodeStyle is set, it is merged with any defined NodeStyle and applied.

Если SiteMapNodeItem имеет тип элемента Parent, то создается HyperLink дочерний элемент управления, NodeTemplate и NodeStyle могут быть применены.If the SiteMapNodeItem has a Parent item type, a HyperLink child control is created and the NodeTemplate and NodeStyle may be applied. Если задано значение NodeTemplate, его ITemplate применяется к узлу.If the NodeTemplate is set, its ITemplate is applied to the node. Если вместо этого задается NodeStyle, применяется.If instead the NodeStyle is set, it is applied.

Наконец, если SiteMapNodeItem имеет тип элемента PathSeparator, создается дочерний элемент управления Literal, а PathSeparatorTemplate и PathSeparatorStyle применяются в соответствии с общими правилами, определенными для типа узла 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.

Переопределите метод InitializeItem для работы с отдельными SiteMapNodeItemными объектами.Override the InitializeItem method to manipulate individual SiteMapNodeItem objects. Если проект класса требует более обширного контроля над созданием SiteMapNodeItemных объектов и добавлением их в элемент управления SiteMapPath, переопределите метод 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.

Applies to

See also