SiteMapNode 클래스

정의

SiteMap 클래스 및 추상 SiteMapProvider 클래스를 구현하는 클래스에서 설명하는 것 같은 계층적 사이트 맵 구조의 노드를 나타냅니다.Represents a node in the hierarchical site map structure such as that described by the SiteMap class and classes that implement the abstract SiteMapProvider class.

public ref class SiteMapNode : ICloneable, System::Web::UI::IHierarchyData, System::Web::UI::INavigateUIData
public class SiteMapNode : ICloneable, System.Web.UI.IHierarchyData, System.Web.UI.INavigateUIData
type SiteMapNode = class
    interface ICloneable
    interface IHierarchyData
    interface INavigateUIData
Public Class SiteMapNode
Implements ICloneable, IHierarchyData, INavigateUIData
상속
SiteMapNode
구현

예제

이 섹션에는 두 코드 예제가 있습니다.This section contains two code examples. 첫 번째 코드 예제에서는 새 사이트 맵 노드 컬렉션을 만들고 요소를 추가 하는 방법을 보여 줍니다.The first code example demonstrates how to create a new site map node collection and add elements to it. 두 번째 코드 예제에서는 텍스트 파일에서 사이트 맵 데이터를 로드 하는 방법을 보여 줍니다.The second code example demonstrates how to load site map data from a text file.

다음 코드 예제를 사용 하는 방법에 설명 합니다 SiteMapNodeCollection 새 생성자 SiteMapNodeCollection 컬렉션을 추가한 다음 요소를 사용 하 여를 Add 메서드.The following code example demonstrates how to use the SiteMapNodeCollection constructor to create a new SiteMapNodeCollection collection, and then add elements to it with the Add method.

// The LoadSiteMapData() method loads site navigation
// data from persistent storage into a DataTable.
DataTable siteMap = LoadSiteMapData();

// Create a SiteMapNodeCollection.
SiteMapNodeCollection nodes = new SiteMapNodeCollection();

// Create a SiteMapNode and add it to the collection.
SiteMapNode tempNode;
DataRow row;
int index = 0;

while (index < siteMap.Rows.Count)
{

    row = siteMap.Rows[index];

    // Create a node based on the data in the DataRow.
    tempNode = new SiteMapNode(SiteMap.Provider,
                                row["Key"].ToString(),
                                row["Url"].ToString());

    // Add the node to the collection.
    nodes.Add(tempNode);
    ++index;
}
' The LoadSiteMapData() Function loads site navigation
' data from persistent storage into a DataTable.

Dim siteMapData As DataTable
siteMapData = LoadSiteMapData()

' Create a SiteMapNodeCollection.
Dim nodes As New SiteMapNodeCollection()

' Create a SiteMapNode and add it to the collection.
Dim tempNode As SiteMapNode
Dim row As DataRow
Dim index As Integer
index = 0

While (index < siteMapData.Rows.Count)

    row = siteMapData.Rows(index)

    ' Create a node based on the data in the DataRow.
    tempNode = New SiteMapNode(SiteMap.Provider, row("Key").ToString(), row("Url").ToString())

    ' Add the node to the collection.
    nodes.Add(tempNode)
    index = index + 1
End While

다음 코드 예제에서는 방법을 SimpleTextSiteMapProvider 쉼표로 구분 된 문자열에는 사이트 맵 데이터를 포함 하는 텍스트 파일 구문 분석 합니다.The following code example demonstrates how the SimpleTextSiteMapProvider parses a text file that contains site map data in comma-delimited strings. SiteMapNode 개체 파일에서 읽을 수 있는 각 줄에 대 한 클래스의 내부 추적 컬렉션에 추가 됩니다.A new SiteMapNode object is added to the internal tracking collections of the class for each line that is read from the file.

이 코드 예제는에 대해 제공 된 큰 예제의 일부는 SiteMapProvider 클래스입니다.This code example is part of a larger example provided for the SiteMapProvider class.

protected virtual void LoadSiteMapFromStore()
{
  string pathToOpen;

  lock (this)
  {
    // If a root node exists, LoadSiteMapFromStore has already
    // been called, and the method can return.
    if (rootNode != null)
    {
      return;
    }
    else
    {
      pathToOpen = HttpContext.Current.Server.MapPath("~" + "\\" + sourceFilename);

      if (File.Exists(pathToOpen))
      {
        // Open the file to read from.
        using (StreamReader sr = File.OpenText(pathToOpen))
        {

          // Clear the state of the collections and rootNode
          rootNode = null;
          siteMapNodes.Clear();
          childParentRelationship.Clear();

          // Parse the file and build the site map
          string s = "";
          string[] nodeValues = null;
          SiteMapNode temp = null;

          while ((s = sr.ReadLine()) != null)
          {

            // Build the various SiteMapNode objects and add
            // them to the ArrayList collections. The format used
            // is: URL,TITLE,DESCRIPTION,PARENTURL

            nodeValues = s.Split(',');

            temp = new SiteMapNode(this,
                HttpRuntime.AppDomainAppVirtualPath + "/" + nodeValues[0],
                HttpRuntime.AppDomainAppVirtualPath + "/" + nodeValues[0],
                nodeValues[1],
                nodeValues[2]);

            // Is this a root node yet?
            if (null == rootNode &&
                string.IsNullOrEmpty(nodeValues[3]))
            {
              rootNode = temp;
            }

          // If not the root node, add the node to the various collections.
            else
            {
              siteMapNodes.Add(new DictionaryEntry(temp.Url, temp));
              // The parent node has already been added to the collection.
              SiteMapNode parentNode =
                       FindSiteMapNode(HttpRuntime.AppDomainAppVirtualPath + "/" + nodeValues[3]);
              if (parentNode != null)
              {
                childParentRelationship.Add(new DictionaryEntry(temp.Url, parentNode));
              }
              else
              {
                throw new Exception("Parent node not found for current node.");
              }
            }
          }
        }
      }
      else
      {
        throw new Exception("File not found");
      }
    }
  }
  return;
}
  Protected Overridable Sub LoadSiteMapFromStore()
    Dim pathToOpen As String
    SyncLock Me
      ' If a root node exists, LoadSiteMapFromStore has already
      ' been called, and the method can return.
      If Not (aRootNode Is Nothing) Then
        Return
      Else
        pathToOpen = HttpContext.Current.Server.MapPath("~" & "\\" & sourceFilename)
        If File.Exists(pathToOpen) Then
          ' Open the file to read from.
          Dim sr As StreamReader = File.OpenText(pathToOpen)
          Try

            ' Clear the state of the collections and aRootNode
            aRootNode = Nothing
            siteMapNodes.Clear()
            childParentRelationship.Clear()

            ' Parse the file and build the site map
            Dim s As String = ""
            Dim nodeValues As String() = Nothing
            Dim temp As SiteMapNode = Nothing

            Do
              s = sr.ReadLine()

              If Not s Is Nothing Then
                ' Build the various SiteMapNode objects and add
                ' them to the ArrayList collections. The format used
                ' is: URL,TITLE,DESCRIPTION,PARENTURL
                nodeValues = s.Split(","c)

                temp = New SiteMapNode(Me, _
                    HttpRuntime.AppDomainAppVirtualPath & "/" & nodeValues(0), _
                    HttpRuntime.AppDomainAppVirtualPath & "/" & nodeValues(0), _
                    nodeValues(1), _
                    nodeValues(2))

                ' Is this a root node yet?
                If aRootNode Is Nothing AndAlso _
                  (nodeValues(3) Is Nothing OrElse _
                   nodeValues(3) = String.Empty) Then
                  aRootNode = temp

                  ' If not the root node, add the node to the various collections.
                Else

                  siteMapNodes.Add(New DictionaryEntry(temp.Url, temp))

                  ' The parent node has already been added to the collection.
                  Dim parentNode As SiteMapNode = _
                      FindSiteMapNode(HttpRuntime.AppDomainAppVirtualPath & "/" & nodeValues(3))

                  If Not (parentNode Is Nothing) Then
                    childParentRelationship.Add(New DictionaryEntry(temp.Url, parentNode))
                  Else
                    Throw New Exception("Parent node not found for current node.")
                  End If
                End If
              End If
            Loop Until s Is Nothing
          Finally
            sr.Close()
          End Try
        Else
          Throw New Exception("File not found")
        End If
      End If
    End SyncLock
    Return
  End Sub
End Class

설명

SiteMapNode 개체는 사이트 맵 구조에서 웹 사이트 페이지를 나타냅니다.A SiteMapNode object represents a Web site page in a site map structure. SiteMapNode 개체는 하나 이상의 사이트 맵 공급자를 사용하여 런타임 시 정적 SiteMap 클래스에 의해 로드되어 영구 스토리지에 메모리로 로드됩니다.SiteMapNode objects are loaded by the static SiteMap class at run time using one or more site map providers to load site map data from persistent storage into memory. SiteMapNode 개체를 래핑합니다 합니다 SiteMapNodeItem 와 같은 웹 서버 컨트롤에서 사용 하기 위해 클래스는 SiteMapPath 제어 합니다.SiteMapNode objects are wrapped by the SiteMapNodeItem class for use by Web server controls, such as the SiteMapPath control.

합니다 SiteMapNode 클래스와 같은 페이지를 설명 하는 속성을 포함 하 여 웹 사이트의 단일 페이지에 설명 하는 데 사용 되는 몇 가지 속성을 포함 합니다 Url, Title, 및 Description 속성입니다.The SiteMapNode class includes several properties that are used to describe a single page in a Web site, including properties that describe a page, such as the Url, Title, and Description properties. 반면를 Url 속성을 사용 합니다 XmlSiteMapProvider 공급자 노드를 추적 하는 데 사용 하는 내부 컬렉션의 조회 키로 ASP.NET에 대 한 기본 사이트 맵 공급자가 클래스를 SiteMapNode 클래스는 기본 지원 Key 노드를 추적 하려면 사이트 맵 공급자가 사용할 수 있는 속성입니다.Whereas the Url property is used by the XmlSiteMapProvider class, which is the default site map provider for ASP.NET, as a lookup key in the internal collections that the provider uses to track nodes, the SiteMapNode class supports a basic Key property that can be used by site map providers to track nodes. 또한는 Url 하이퍼링크 된 탐색 구조 내에서 페이지를 렌더링 하 속성은 탐색 컨트롤에서 사용 합니다.Additionally, the Url property is used by navigation controls to render hyperlinks to pages within a navigation structure. 합니다 Title 속성에 대 한 친숙 한 이름인는 SiteMapNode, 웹 폼의 HTML 제목으로 동일한 경우가 및 탐색 컨트롤에서 간단한 레이블을 렌더링 하는 데 사용 됩니다.The Title property is a friendly name for the SiteMapNode, is often the same as the HTML title of a Web Form, and is used by navigation controls to render simple labels. 마지막으로 한 NameValueCollection 컬렉션 추가 Attributes 특성을 사용 하는 사이트 맵 공급자를 사용할 수 SiteMapNode 개체에는 있지만 자료에서 사용할 수 없는 추가 속성이 필요한 SiteMapNode 클래스입니다.Finally, a NameValueCollection collection of additional Attributes attributes is available to site map providers that use SiteMapNode objects, but require additional properties that are not available in the base SiteMapNode class.

생성자

SiteMapNode(SiteMapProvider, String)

노드에서 나타내는 페이지를 식별하는 지정된 SiteMapNode와 노드를 관리하는 사이트 맵 공급자를 사용하여 key 클래스의 새 인스턴스를 초기화합니다.Initializes a new instance of the SiteMapNode class, using the specified key to identify the page that the node represents and the site map provider that manages the node.

SiteMapNode(SiteMapProvider, String, String)

지정된 URL, 노드에서 나타내는 페이지를 식별하는 SiteMapNode 및 노드를 관리하는 사이트 맵 공급자를 사용하여 key 클래스의 새 인스턴스를 초기화합니다.Initializes a new instance of the SiteMapNode class using the specified URL, a key to identify the page that the node represents, and the site map provider that manages the node.

SiteMapNode(SiteMapProvider, String, String, String)

지정된 URL, 노드에서 나타내는 페이지를 식별하는 SiteMapNode, 제목 및 노드를 관리하는 사이트 맵 공급자를 사용하여 key 클래스의 새 인스턴스를 초기화합니다.Initializes a new instance of the SiteMapNode class using the specified URL, a key to identify the page that the node represents, a title, and the site map provider that manages the node.

SiteMapNode(SiteMapProvider, String, String, String, String)

지정된 URL, 노드에서 나타내는 페이지를 식별하는 SiteMapNode, 제목과 설명 및 노드를 관리하는 사이트 맵 공급자를 사용하여 key 클래스의 새 인스턴스를 초기화합니다.Initializes a new instance of the SiteMapNode class using the specified URL, a key to identify the page that the node represents, a title and description, and the site map provider that manages the node.

SiteMapNode(SiteMapProvider, String, String, String, String, IList, NameValueCollection, NameValueCollection, String)

노드, URL, 제목, 설명, 역할, 추가 특성 및 지역화를 위한 명시적 및 암시적 리소스 키를 관리하는 지정된 사이트 맵 공급자를 사용하여 SiteMapNode 클래스의 새 인스턴스를 초기화합니다.Initializes a new instance of the SiteMapNode class using the specified site map provider that manages the node, URL, title, description, roles, additional attributes, and explicit and implicit resource keys for localization.

속성

Attributes

SiteMapNode 클래스에 대해 정의된 강력한 형식의 속성 이외에 추가 특성 컬렉션을 가져오거나 설정합니다.Gets or sets a collection of additional attributes beyond the strongly typed properties that are defined for the SiteMapNode class.

ChildNodes

관련된 SiteMapNode 공급자에서 현재 SiteMapProvider 개체의 모든 자식 노드를 가져오거나 설정합니다.Gets or sets all the child nodes of the current SiteMapNode object from the associated SiteMapProvider provider.

Description

SiteMapNode에 대한 설명을 가져오거나 설정합니다.Gets or sets a description for the SiteMapNode.

HasChildNodes

현재 SiteMapNode에 자식 노드가 있는지 여부를 나타내는 값을 가져옵니다.Gets a value indicating whether the current SiteMapNode has any child nodes.

Item[String]

지정된 키를 기반으로 Attributes 컬렉션의 사용자 지정 특성이나 리소스 문자열을 가져오거나 설정합니다.Gets or sets a custom attribute from the Attributes collection or a resource string based on the specified key.

Key

사이트 맵 노드에 대한 조회 키를 나타내는 문자열을 가져옵니다.Gets a string representing a lookup key for a site map node.

NextSibling

현재와 동일한 계층 구조 수준에서 SiteMapNode 속성(있는 경우)에 상대적인 다음 ParentNode 노드를 가져옵니다.Gets the next SiteMapNode node on the same hierarchical level as the current one, relative to the ParentNode property (if one exists).

ParentNode

현재 노드의 부모인 SiteMapNode 개체를 가져오거나 설정합니다.Gets or sets the SiteMapNode object that is the parent of the current node.

PreviousSibling

현재와 동일한 수준에서 SiteMapNode 개체(있는 경우)에 상대적인 이전 ParentNode 개체를 가져옵니다.Gets the previous SiteMapNode object on the same level as the current one, relative to the ParentNode object (if one exists).

Provider

SiteMapProvider 개체를 추적하는 SiteMapNode 공급자를 가져옵니다.Gets the SiteMapProvider provider that the SiteMapNode object is tracked by.

ReadOnly

사이트 맵 노드를 수정할 수 있는지 여부를 나타내는 값을 가져오거나 설정합니다.Gets or sets a value indicating whether the site map node can be modified.

ResourceKey

SiteMapNode를 지역화하는 데 사용되는 리소스 키를 가져오거나 설정합니다.Gets or sets the resource key that is used to localize the SiteMapNode.

Roles

보안 조정 동안 사용되는 SiteMapNode 개체와 연결된 역할의 컬렉션을 가져오거나 설정합니다.Gets or sets a collection of roles that are associated with the SiteMapNode object, used during security trimming.

RootNode

사이트 맵 공급자 계층 구조에 있는 루트 공급자의 루트 노드를 가져옵니다.Gets the root node of the root provider in a site map provider hierarchy. 공급자 계층 구조가 없으면 RootNode 속성에서 현재 공급자의 루트 노드를 가져옵니다.If no provider hierarchy exists, the RootNode property gets the root node of the current provider.

Title

SiteMapNode 개체의 제목을 가져오거나 설정합니다.Gets or sets the title of the SiteMapNode object.

Url

SiteMapNode 개체에서 나타내는 페이지의 URL을 가져오거나 설정합니다.Gets or sets the URL of the page that the SiteMapNode object represents.

메서드

Clone()

현재 노드의 복사본인 새 노드를 만듭니다.Creates a new node that is a copy of the current node.

Clone(Boolean)

현재 노드의 복사본인 새 복사본을 만들고 필요에 따라 현재 노드의 모든 부모 및 상위 노드를 복제합니다.Creates a new copy that is a copy of the current node, optionally cloning all parent and ancestor nodes of the current node.

Equals(Object)

현재 SiteMapNode가 지정된 개체와 같은지 여부를 나타내는 값을 가져옵니다.Gets a value indicating whether the current SiteMapNode is identical to the specified object.

GetAllNodes()

분리 정도에 상관없이 호출하는 노드의 하위 항목인 모든 SiteMapNode 개체의 읽기 전용 컬렉션을 검색합니다.Retrieves a read-only collection of all SiteMapNode objects that are descendants of the calling node, regardless of the degree of separation.

GetDataSourceView(SiteMapDataSource, String)

현재 노드와 관련된 SiteMapDataSourceView 개체를 검색합니다.Retrieves the SiteMapDataSourceView object that is associated with the current node.

GetExplicitResourceString(String, String, Boolean)

지역화할 SiteMapNode 특성, 리소스가 없는 경우 반환할 기본 문자열 및 리소스가 없는 경우 예외를 throw할지 여부를 나타내는 부울 값을 기반으로 지역화된 문자열을 검색합니다.Retrieves a localized string based on a SiteMapNode attribute to localize, a default string to return if no resource is found, and a Boolean value indicating whether to throw an exception if no resource is found.

GetHashCode()

SiteMapNode 개체의 해시 코드를 반환합니다.Returns the hash code of the SiteMapNode object.

GetHierarchicalDataSourceView()

현재 노드와 관련된 SiteMapHierarchicalDataSourceView 개체를 검색합니다.Retrieves the SiteMapHierarchicalDataSourceView object that is associated with the current node.

GetImplicitResourceString(String)

ResourceKey를 추적하는 SiteMapProvider에 의해 지정된 SiteMapNode 속성과 특성 이름을 기반으로 지역화된 문자열을 가져옵니다.Gets a localized string based on the attribute name and ResourceKey property that is specified by the SiteMapProvider by which the SiteMapNode is tracked.

GetType()

현재 인스턴스의 Type을 가져옵니다.Gets the Type of the current instance.

(다음에서 상속됨 Object)
IsAccessibleToUser(HttpContext)

사용자가 지정된 컨텍스트에서 지정된 사이트 맵 노드를 볼 수 있는지 여부를 나타내는 값을 가져옵니다.Gets a value indicating whether the specified site map node can be viewed by the user in the specified context.

IsDescendantOf(SiteMapNode)

현재 사이트 맵 노드가 지정된 노드의 자식 또는 직계 하위 노드인지 여부를 나타내는 값을 가져옵니다.Gets a value indicating whether the current site map node is a child or a direct descendant of the specified node.

MemberwiseClone()

현재 Object의 단순 복사본을 만듭니다.Creates a shallow copy of the current Object.

(다음에서 상속됨 Object)
ToString()

SiteMapNode 클래스의 이 인스턴스 값을 해당하는 문자열 표현으로 변환합니다.Converts the value of this instance of the SiteMapNode class to its equivalent string representation.

명시적 인터페이스 구현

ICloneable.Clone()

현재 노드의 복사본인 새 노드를 만듭니다.Creates a new node that is a copy of the current node. 이 멤버에 대한 설명은 Clone()를 참조하세요.For a description of this member, see Clone().

IHierarchyData.GetChildren()

현재 항목의 계층적 자식 데이터 항목을 검색합니다.Retrieves the hierarchical children data items of the current item. 이 멤버에 대한 설명은 GetChildren()를 참조하세요.For a description of this member, see GetChildren().

IHierarchyData.GetParent()

현재 항목의 계층적 부모를 검색합니다.Retrieves the hierarchical parent of the current item. 이 멤버에 대한 설명은 GetParent()를 참조하세요.For a description of this member, see GetParent().

IHierarchyData.HasChildren

현재 SiteMapNode 개체에 자식 노드가 있는지를 나타내는 값을 가져옵니다.Gets a value that indicates whether the current SiteMapNode object has any child nodes. 이 멤버에 대한 설명은 HasChildren를 참조하세요.For a description of this member, see HasChildren.

IHierarchyData.Item

계층적 데이터 항목을 가져옵니다.Gets the hierarchical data item. 이 멤버에 대한 설명은 Item를 참조하세요.For a description of this member, see Item.

IHierarchyData.Path

계층적 데이터 항목의 경로를 가져옵니다.Gets the path of the hierarchical data item. 이 멤버에 대한 설명은 Path를 참조하세요.For a description of this member, see Path.

IHierarchyData.Type

계층적 데이터 항목의 형식 이름을 나타내는 문자열을 가져옵니다.Gets a string that represents the type name of the hierarchical data item. 이 멤버에 대한 설명은 Type를 참조하세요.For a description of this member, see Type.

INavigateUIData.Description

사이트 맵 노드의 Description 속성을 가져옵니다.Gets the Description property of the site map node. 이 멤버에 대한 설명은 Description를 참조하세요.For a description of this member, see Description.

INavigateUIData.Name

사이트 맵 노드의 Title 속성을 가져옵니다.Gets the Title property of the site map node. 이 멤버에 대한 설명은 Name를 참조하세요.For a description of this member, see Name.

INavigateUIData.NavigateUrl

사이트 맵 노드의 Url 속성을 가져옵니다.Gets the Url property of the site map node. 이 멤버에 대한 설명은 NavigateUrl를 참조하세요.For a description of this member, see NavigateUrl.

INavigateUIData.Value

사이트 맵 노드의 Title 속성을 가져옵니다.Gets the Title property of the site map node. 이 멤버에 대한 설명은 Value를 참조하세요.For a description of this member, see Value.

적용 대상

추가 정보