다음을 통해 공유


SiteMapPath.InitializeItem(SiteMapNodeItem) 메서드

정의

SiteMapNodeItem를 나타내는 웹 서버 컨트롤인 SiteMapNode을 노드의 기능 및 지정된 노드 템플릿과 스타일을 기반으로 하는 자식 컨트롤 집합으로 채웁니다.

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)

매개 변수

item
SiteMapNodeItem

초기화할 SiteMapNodeItem입니다.

예제

다음 코드 예제에서는 재정의 하는 방법에 설명 합니다 InitializeItem 에서 파생 되는 컨트롤에 기능을 추가 하는 방법 SiteMapPath합니다. 이 코드 예제는에 대해 제공 된 큰 예제의 일부는 SiteMapPath 클래스입니다.

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

설명

합니다 InitializeItem 메서드를 확인 하 여 항목을 나타내는 노드의 기능 유형을 결정 합니다 SiteMapNodeItemType, 템플릿 또는 노드의 종류에 대해 정의 된 스타일을 적용 합니다.

경우는 SiteMapNodeItemRoot 형식 항목을 HyperLink 자식 컨트롤을 만든 및 RootNodeTemplateRootNodeStyle 적용 될 수 있습니다. 경우는 RootNodeTemplate 설정 되어 해당 ITemplate 노드에 적용 됩니다. 대신 합니다 RootNodeStyle 설정에 정의 된 병합 된 NodeStyle 적용 합니다. 마지막으로 없습니다 템플릿이나 스타일을 정의한 경우, 기본 HyperLink 컨트롤 생성 되 고 노드 값을 사용 하 여 초기화 합니다.

경우는 SiteMapNodeItemCurrent 항목 형식이 Literal 또는 HyperLink 의 반환 값에 따라 자식 컨트롤을 만든 RenderCurrentNodeAsLink합니다. 다음 중 하나는 CurrentNodeTemplate 또는 CurrentNodeStyle 적용 될 수 있습니다. 경우는 CurrentNodeTemplate 설정 되어 해당 ITemplate 노드에 적용 됩니다. 대신 합니다 CurrentNodeStyle 설정에 정의 된 병합 된 NodeStyle 적용 합니다.

경우는 SiteMapNodeItemParent 항목 형식이 HyperLink 자식 컨트롤을 만들 및 NodeTemplateNodeStyle 적용 될 수 있습니다. 경우는 NodeTemplate 설정 되어 해당 ITemplate 노드에 적용 됩니다. 그렇지 않고는 NodeStyle 설정 적용 됩니다.

마지막으로, 경우는 SiteMapNodeItemPathSeparator 항목 형식이 Literal 자식 컨트롤을 만들 및 PathSeparatorTemplatePathSeparatorStyle 에 대해 정의 된 동일한 일반 규칙에 따라 적용 됩니다는 Parent 노드 형식.

재정의 된 InitializeItem 개별 조작 방법 SiteMapNodeItem 개체입니다. 클래스의 디자인 방법을 보다 더 광범위 한 컨트롤에 필요한 경우 SiteMapNodeItem 개체를 만들어에 추가 합니다 SiteMapPath 제어를 재정의 합니다 CreateControlHierarchy 메서드.

적용 대상

추가 정보