다음을 통해 공유


SiteMap 클래스

정의

SiteMap 클래스는 하나 이상의 사이트 맵 공급자가 제공하는 사이트의 탐색 구조에 대한 메모리 내 표현입니다. 이 클래스는 상속될 수 없습니다.

public ref class SiteMap abstract sealed
public static class SiteMap
type SiteMap = class
Public Class SiteMap
상속
SiteMap

예제

이 섹션에는 두 코드 예제가 있습니다. 첫 번째 코드 예제에서는 Web.config 파일에 사이트 맵 공급자를 선언 하는 방법에 설명 합니다. 두 번째 코드 예제를 사용 하는 방법에 설명 된 SiteMap 개체입니다.

다음 코드 예제는 Web.config 구성 섹션을 보여 주는 방법을 XmlSiteMapProvider 개체가 기본적으로 선언 된 SiteMapProvider 개체입니다.

<siteMap defaultProvider="MyXmlSiteMapProvider" enabled="true">  
  <providers>  
    <add name="MyXmlSiteMapProvider"  
      description="The site map provider that reads in the .sitemap XML files."  
      type="System.Web.XmlSiteMapProvider, System.Web, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"  
      siteMapFile="my.sitemap" />  
  </providers>  
</siteMap>  

다음 코드 예제를 사용 하는 방법에 설명 합니다 SiteMap 에 대 한 정보를 표시 하려면 해당 정적 멤버에 액세스 하 여 개체를 RootNodeCurrentNode 속성입니다. 통해 렌더링 되는 출력 비교는 SiteMapPath 제어 합니다.

<%@ Page language="c#"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
private void Page_Load(object sender, System.EventArgs e)
{
    // Examine the CurrentNode, and navigate the SiteMap relative to it.
    Response.Write(SiteMap.CurrentNode.Title + "<br />");
    Response.Write("<font COLOR='red'>" + SiteMap.CurrentNode.Url + "</font><br />");

    // What nodes are children of the CurrentNode?
    if (SiteMap.CurrentNode.HasChildNodes) {
        IEnumerator childNodesEnumerator = SiteMap.CurrentNode.ChildNodes.GetEnumerator();
        while (childNodesEnumerator.MoveNext()) {
            // Prints the Title of each node.
            Response.Write(childNodesEnumerator.Current.ToString() + "<br />");
        }
    }
    Response.Write("<hr />");

    // Examine the RootNode, and navigate the SiteMap relative to it.
    Response.Write(SiteMap.RootNode.Title + "<br />");
    Response.Write(SiteMap.RootNode.Url + "<br />");

    // What nodes are children of the RootNode?
    if (SiteMap.RootNode.HasChildNodes) {
        IEnumerator rootNodesChildrenEnumerator = SiteMap.RootNode.ChildNodes.GetEnumerator();
        while (rootNodesChildrenEnumerator.MoveNext()) {
            // Prints the Title of each node.
            Response.Write(rootNodesChildrenEnumerator.Current.ToString() + "<br />");
        }
    }

}
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
  <head runat="server">
    <title>ASP.NET Example</title>
</head>
<body>
    <form id="Form1" runat="server">
      <asp:SiteMapPath
          runat="server"
        ID="SiteMapPath1"
        ShowToolTips="false"/>
    </form>
  </body>
</html>
<%@ Page language="VB"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<script runat="server">
Private Sub Page_Load(sender As Object, e As System.EventArgs)

  ' Examine the CurrentNode, and navigate the SiteMap relative to it.
  Response.Write(SiteMap.CurrentNode.Title & "<br />")
  Response.Write("<font COLOR='red'>" & SiteMap.CurrentNode.Url & "</font><br />")

  ' What nodes are children of the CurrentNode?
  If (SiteMap.CurrentNode.HasChildNodes) Then
      Dim childNodesEnumerator As IEnumerator = SiteMap.CurrentNode.ChildNodes.GetEnumerator()

      While (childNodesEnumerator.MoveNext())
          ' Prints the Title of each node.
          Response.Write(childNodesEnumerator.Current.ToString() & "<br />")
      End While

  End If
  Response.Write("<hr />")

  ' Examine the RootNode, and navigate the SiteMap relative to it.
  Response.Write(SiteMap.RootNode.Title & "<br />")
  Response.Write(SiteMap.RootNode.Url & "<br />")

  ' What nodes are children of the RootNode?
  If (SiteMap.RootNode.HasChildNodes) Then
      Dim rootNodesChildrenEnumerator As IEnumerator = SiteMap.RootNode.ChildNodes.GetEnumerator()
      While (rootNodesChildrenEnumerator.MoveNext())
          ' Prints the Title of each node.
          Response.Write(rootNodesChildrenEnumerator.Current.ToString() & "<br />")
      End While
  End If

End Sub ' Page_Load
</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
  <head runat="server">
    <title>ASP.NET Example</title>
</head>
<body>
    <form id="Form1" runat="server">
        <asp:SiteMapPath
            runat="server"
          ID="SiteMapPath1"
          ShowToolTips="false"/>

    </form>
  </body>
</html>

설명

사이트 맵와 함께 사용 되는 SiteMapDataSource, SiteMapPath, 및 다른 컨트롤을 웹 사이트를 탐색 하는 사용자에 대 한 유용한 탐색 인터페이스를 렌더링 합니다. A SiteMap 개체는 탐색을 사용 하 여 페이지 및 컨트롤 개발자에 대 한 읽기 전용 사이트 맵 정보에 대 한 액세스를 제공 하는 ASP.NET 사이트 탐색 인프라의 구성 요소 및 SiteMapDataSource 컨트롤입니다. ASP.NET 사이트 탐색 인프라의 다른 구성 요소를 포함 합니다 SiteMapProviderXmlSiteMapProvider 클래스, Web.sitemap 파일 및 사용 하는 다양 한 컨트롤을 SiteMap 클래스와 같은 SiteMapPath 콘텐츠를 렌더링 하 및 메뉴입니다.

SiteMap 몇 가지 기능이 있습니다.

  • 사이트 탐색 계층 구조 (수만 하나의 루트 요소)의 루트 노드를 제공 합니다.

  • 사이트 맵 공급자가 보안 주체, 멤버 또는 기본 공급자를 식별 합니다.

  • 만드는 데 사용 되는 모든 공급자 개체를 추적 합니다 SiteMap합니다.

근본적으로 SiteMap 의 계층적 컬렉션에 대 한 컨테이너인 SiteMapNode 개체입니다. 그러나는 SiteMap 노드 간의 관계를 유지 하지 않습니다 아니라이 대 한 대리자 사이트 맵 공급자입니다. 합니다 SiteMap 역할을 사이트 탐색 정보에 대 한 인터페이스 (형태로 SiteMapNode 개체) 이러한 사이트 맵 공급자가 유지 되는 합니다. 공급자에서이 액세스할 수 있는 노출 및 사이트 탐색 데이터를 추적 해당 Providers 컬렉션입니다. 공급자는 어떤 방식으로든 사이트 맵 정보를 저장할 수 있습니다. 추상 클래스를 SiteMapProvider 확장하는 한 클래스를 SiteMap 성공적으로 초기화할 수 있습니다.

에 대 한 기본 공급자는 SiteMap 클래스는를 XmlSiteMapProvider Web.sitemap XML 구성 파일을 사용 하 여 작동 하는 클래스입니다. 그러나 작성할 수 있습니다 고유한 SiteMapProvider 개체를 사용 하 여 사이트에 대 한 사이트 맵 초기화 합니다. 사용자 지정 사이트 맵 공급자의 예제를 참조 하세요. SiteMapProvider합니다.

기본 사이트 맵 구성은 관리 하는 사이트 탐색 구성 지정 됩니다. 사이트 맵 공급자를 작성 하도록 선택한 경우 Web.config 파일에서이 구성을 재정의할 수 있습니다.

SiteMap 클래스는 성능에 대 한 정적 멤버를 제공 하 고 Web Form 또는 웹 서버 컨트롤에서 지정된 된 사이트에서 언제 든 지 액세스할 수 있습니다.

속성

CurrentNode

현재 요청된 페이지를 나타내는 SiteMapNode 컨트롤을 가져옵니다.

Enabled

사이트 맵 공급자가 Web.config 파일에 지정되어 있으며 사이트 맵 공급자가 설정되어 있는지 여부를 나타내는 부울 값을 가져옵니다.

Provider

현재 사이트 맵에 대한 기본 SiteMapProvider 개체를 가져옵니다.

Providers

SiteMapProvider 클래스에 사용할 수 있는 명명된 SiteMap 개체의 읽기 전용 컬렉션을 가져옵니다.

RootNode

사이트 탐색 구조의 최상위 페이지를 나타내는 SiteMapNode 개체를 가져옵니다.

이벤트

SiteMapResolve

CurrentNode 속성에 액세스할 때 발생합니다.

적용 대상

추가 정보