SiteMap 클래스

정의

SiteMap 클래스는 하나 이상의 사이트 맵 공급자가 제공하는 사이트의 탐색 구조에 대한 메모리 내 표현입니다.The SiteMap class is an in-memory representation of the navigation structure for a site, which is provided by one or more site map providers. 이 클래스는 상속될 수 없습니다.This class cannot be inherited.

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

예제

이 섹션에는 두 코드 예제가 있습니다.This section contains two code examples. 첫 번째 코드 예제에서는 Web.config 파일에 사이트 맵 공급자를 선언 하는 방법에 설명 합니다.The first code example demonstrates how to declare a site map provider in a Web.config file. 두 번째 코드 예제를 사용 하는 방법에 설명 된 SiteMap 개체입니다.The second code example demonstrates how to use a SiteMap object.

다음 코드 예제는 Web.config 구성 섹션을 보여 주는 방법을 XmlSiteMapProvider 개체가 기본적으로 선언 된 SiteMapProvider 개체입니다.The following code example is a Web.config configuration section that demonstrates how an XmlSiteMapProvider object is declared as the default SiteMapProvider object.

<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 속성입니다.The following code example demonstrates how to use the SiteMap object by accessing its static members to display information about the RootNode and CurrentNode properties. 통해 렌더링 되는 출력 비교는 SiteMapPath 제어 합니다.Compare it to the output that is rendered by the SiteMapPath control.

<%@ 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, 및 다른 컨트롤을 웹 사이트를 탐색 하는 사용자에 대 한 유용한 탐색 인터페이스를 렌더링 합니다.Site maps are used in conjunction with the SiteMapDataSource, SiteMapPath, and other controls to render an effective navigation interface for users to navigate a Web site. A SiteMap 개체는 탐색을 사용 하 여 페이지 및 컨트롤 개발자에 대 한 읽기 전용 사이트 맵 정보에 대 한 액세스를 제공 하는 ASP.NET 사이트 탐색 인프라의 구성 요소 및 SiteMapDataSource 컨트롤입니다.A SiteMap object is a component of the ASP.NET site navigation infrastructure that provides access to read-only site map information for page and control developers using navigation and SiteMapDataSource controls. ASP.NET 사이트 탐색 인프라의 다른 구성 요소를 포함 합니다 SiteMapProviderXmlSiteMapProvider 클래스, Web.sitemap 파일 및 사용 하는 다양 한 컨트롤을 SiteMap 클래스와 같은 SiteMapPath 콘텐츠를 렌더링 하 및 메뉴입니다.Other components of the ASP.NET site navigation infrastructure include the SiteMapProvider and XmlSiteMapProvider classes, the Web.sitemap file, and the various controls that work with the SiteMap class, such as the SiteMapPath control, to render content and menus.

SiteMap 몇 가지 기능이 있습니다.The SiteMap has several functions:

  • 사이트 탐색 계층 구조 (수만 하나의 루트 요소)의 루트 노드를 제공 합니다.It provides the root node of the site navigation hierarchy (there can be only one root node).

  • 사이트 맵 공급자가 보안 주체, 멤버 또는 기본 공급자를 식별 합니다.It identifies which site map provider is the principal, or default, provider.

  • 만드는 데 사용 되는 모든 공급자 개체를 추적 합니다 SiteMap합니다.It keeps track of all the provider objects that are used to create the SiteMap.

근본적으로 SiteMap 의 계층적 컬렉션에 대 한 컨테이너인 SiteMapNode 개체입니다.Fundamentally, the SiteMap is a container for a hierarchical collection of SiteMapNode objects. 그러나는 SiteMap 노드 간의 관계를 유지 하지 않습니다 아니라이 대 한 대리자 사이트 맵 공급자입니다.However, the SiteMap does not maintain the relationships between the nodes; rather, it delegates this to the site map providers. 합니다 SiteMap 역할을 사이트 탐색 정보에 대 한 인터페이스 (형태로 SiteMapNode 개체) 이러한 사이트 맵 공급자가 유지 되는 합니다.The SiteMap acts as an interface to the site navigation information (in the form of SiteMapNode objects) that is held by these site map providers. 공급자에서이 액세스할 수 있는 노출 및 사이트 탐색 데이터를 추적 해당 Providers 컬렉션입니다.It keeps track of the providers from which it can access site navigation data and exposes its Providers collection. 공급자는 SiteMapProvider 추상 클래스를 확장 하는 동안 사이트 맵 정보를 저장할 수 있습니다. 그러면 SiteMap 클래스가 성공적으로 초기화 될 수 있습니다.A provider can store its site map information in any way - as long as it extends the SiteMapProvider abstract class, the SiteMap class can be initialized successfully from it.

에 대 한 기본 공급자는 SiteMap 클래스는를 XmlSiteMapProvider Web.sitemap XML 구성 파일을 사용 하 여 작동 하는 클래스입니다.The default provider for the SiteMap class is the XmlSiteMapProvider class, which works with an XML configuration file, Web.sitemap. 그러나 작성할 수 있습니다 고유한 SiteMapProvider 개체를 사용 하 여 사이트에 대 한 사이트 맵 초기화 합니다.However, you can write your own SiteMapProvider object, and use it to initialize the site map for your site. 사용자 지정 사이트 맵 공급자의 예제를 참조 하세요. SiteMapProvider합니다.For an example of a custom site map provider, see SiteMapProvider.

기본 사이트 맵 구성은 관리 하는 사이트 탐색 구성 지정 됩니다.A default site map configuration is specified that manages the site navigation configuration. 사이트 맵 공급자를 작성 하도록 선택한 경우 Web.config 파일에서이 구성을 재정의할 수 있습니다.You can override this configuration in the Web.config file, should you choose to write your own site map provider.

SiteMap 클래스는 성능에 대 한 정적 멤버를 제공 하 고 Web Form 또는 웹 서버 컨트롤에서 지정된 된 사이트에서 언제 든 지 액세스할 수 있습니다.The SiteMap class offers only static members for performance and it can be accessed at any time in a given site from a Web Form or Web server control.

속성

CurrentNode

현재 요청된 페이지를 나타내는 SiteMapNode 컨트롤을 가져옵니다.Gets a SiteMapNode control that represents the currently requested page.

Enabled

Web.config 파일에서 사이트 맵 공급자를 지정 하 고 사이트 맵 공급자를 사용 하는 경우를 나타내는 부울 값을 가져옵니다.Gets a Boolean value indicating if a site map provider is specified in the Web.config file and if the site map provider is enabled.

Provider

현재 사이트 맵에 대한 기본 SiteMapProvider 개체를 가져옵니다.Gets the default SiteMapProvider object for the current site map.

Providers

SiteMapProvider 클래스에 사용할 수 있는 명명된 SiteMap 개체의 읽기 전용 컬렉션을 가져옵니다.Gets a read-only collection of named SiteMapProvider objects that are available to the SiteMap class.

RootNode

사이트 탐색 구조의 최상위 페이지를 나타내는 SiteMapNode 개체를 가져옵니다.Gets a SiteMapNode object that represents the top-level page of the navigation structure for the site.

이벤트

SiteMapResolve

CurrentNode 속성에 액세스할 때 발생합니다.Occurs when the CurrentNode property is accessed.

적용 대상

추가 정보