내보내기(0) 인쇄
모두 확장
이 문서는 기계로 번역한 것입니다. 원본 텍스트를 보려면 포인터를 문서의 문장 위로 올리십시오. 추가 정보
번역
원본

SiteMapNode 클래스

SiteMap 클래스 및 추상 SiteMapProvider 클래스를 구현하는 클래스에서 설명하는 것 같은 계층적 사이트 맵 구조의 노드를 나타냅니다.

System.Object
  System.Web.SiteMapNode

네임스페이스:  System.Web
어셈블리:  System.Web(System.Web.dll)

public class SiteMapNode : ICloneable, 
	IHierarchyData, INavigateUIData

SiteMapNode 형식에서는 다음과 같은 멤버를 노출합니다.

  이름설명
Public 메서드SiteMapNode(SiteMapProvider, String)노드에서 나타내는 페이지를 식별하는 지정된 key와 노드를 관리하는 사이트 맵 공급자를 사용하여 SiteMapNode 클래스의 새 인스턴스를 초기화합니다.
Public 메서드SiteMapNode(SiteMapProvider, String, String)지정된 URL, 노드에서 나타내는 페이지를 식별하는 key 및 노드를 관리하는 사이트 맵 공급자를 사용하여 SiteMapNode 클래스의 새 인스턴스를 초기화합니다.
Public 메서드SiteMapNode(SiteMapProvider, String, String, String)지정된 URL, 노드에서 나타내는 페이지를 식별하는 key, 제목 및 노드를 관리하는 사이트 맵 공급자를 사용하여 SiteMapNode 클래스의 새 인스턴스를 초기화합니다.
Public 메서드SiteMapNode(SiteMapProvider, String, String, String, String)지정된 URL, 노드에서 나타내는 페이지를 식별하는 key, 제목과 설명 및 노드를 관리하는 사이트 맵 공급자를 사용하여 SiteMapNode 클래스의 새 인스턴스를 초기화합니다.
Public 메서드SiteMapNode(SiteMapProvider, String, String, String, String, IList, NameValueCollection, NameValueCollection, String)노드, URL, 제목, 설명, 역할, 추가 특성 및 지역화를 위한 명시적 및 암시적 리소스 키를 관리하는 지정된 사이트 맵 공급자를 사용하여 SiteMapNode 클래스의 새 인스턴스를 초기화합니다.
위쪽

  이름설명
Protected 속성Attributes SiteMapNode 클래스에 대해 정의된 강력한 형식의 속성 이외에 추가 특성 컬렉션을 가져오거나 설정합니다.
Public 속성ChildNodes관련된 SiteMapProvider 공급자에서 현재 SiteMapNode 개체의 모든 자식 노드를 가져오거나 설정합니다.
Public 속성Description SiteMapNode 에 대한 설명을 가져오거나 설정합니다.
Public 속성HasChildNodes현재 SiteMapNode에 자식 노드가 있는지 여부를 나타내는 값을 가져옵니다.
Public 속성Item지정된 키를 기반으로 Attributes 컬렉션의 사용자 지정 특성이나 리소스 문자열을 가져오거나 설정합니다.
Public 속성Key사이트 맵 노드에 대한 조회 키를 나타내는 문자열을 가져옵니다.
Public 속성NextSibling현재와 동일한 계층 구조 수준에서 ParentNode 속성(있는 경우)에 상대적인 다음 SiteMapNode 노드를 가져옵니다.
Public 속성ParentNode현재 노드의 부모인 SiteMapNode 개체를 가져오거나 설정합니다.
Public 속성PreviousSibling현재와 동일한 수준에서 ParentNode 개체(있는 경우)에 상대적인 이전 SiteMapNode 개체를 가져옵니다.
Public 속성Provider SiteMapNode 개체를 추적하는 SiteMapProvider 공급자를 가져옵니다.
Public 속성ReadOnly사이트 맵 노드를 수정할 수 있는지 여부를 나타내는 값을 가져오거나 설정합니다.
Public 속성ResourceKey SiteMapNode 를 지역화하는 데 사용되는 리소스 키를 가져오거나 설정합니다.
Public 속성Roles보안 트리밍 동안 사용되는 SiteMapNode 개체와 관련된 역할의 컬렉션을 가져오거나 설정합니다.
Public 속성RootNode사이트 맵 공급자 계층 구조에 있는 루트 공급자의 루트 노드를 가져옵니다. 공급자 계층 구조가 없으면 RootNode 속성에서 현재 공급자의 루트 노드를 가져옵니다.
Public 속성Title SiteMapNode 개체의 제목을 가져오거나 설정합니다.
Public 속성Url SiteMapNode 개체에서 나타내는 페이지의 URL을 가져오거나 설정합니다.
위쪽

  이름설명
Public 메서드Clone()현재 노드의 복사본인 새 노드를 만듭니다.
Public 메서드Clone(Boolean)현재 노드의 복사본인 새 복사본을 만들고 필요에 따라 현재 노드의 모든 부모 및 상위 노드를 복제합니다.
Public 메서드Equals현재 SiteMapNode가 지정한 개체와 같은지 여부를 나타내는 값을 가져옵니다. (Object.Equals(Object)을(를) 재정의함)
Protected 메서드Finalize 개체가 가비지 수집자에서 회수되기 전에, 해당 개체에서 리소스를 해제하고 다른 정리 작업을 수행할 수 있게 합니다. (Object에서 상속됨)
Public 메서드GetAllNodes분리 정도에 상관없이 호출하는 노드의 하위 항목인 모든 SiteMapNode 개체의 읽기 전용 컬렉션을 검색합니다.
Public 메서드GetDataSourceView현재 노드와 관련된 SiteMapDataSourceView 개체를 검색합니다.
Protected 메서드GetExplicitResourceString지역화할 SiteMapNode 특성, 리소스가 없는 경우 반환할 기본 문자열 및 리소스가 없는 경우 예외를 throw할지 여부를 나타내는 부울 값을 기반으로 지역화된 문자열을 검색합니다.
Public 메서드GetHashCode SiteMapNode 개체의 해시 코드를 반환합니다. (Object.GetHashCode()을(를) 재정의함)
Public 메서드GetHierarchicalDataSourceView현재 노드와 관련된 SiteMapHierarchicalDataSourceView 개체를 검색합니다.
Protected 메서드GetImplicitResourceString SiteMapNode 를 추적하는 SiteMapProvider에 의해 지정된 ResourceKey 속성과 특성 이름을 기반으로 지역화된 문자열을 가져옵니다.
Public 메서드GetType현재 인스턴스의 Type을 가져옵니다. (Object에서 상속됨)
Public 메서드IsAccessibleToUser사용자가 지정된 컨텍스트에서 지정된 사이트 맵 노드를 볼 수 있는지 여부를 나타내는 값을 가져옵니다.
Public 메서드IsDescendantOf현재 사이트 맵 노드가 지정된 노드의 자식 또는 직계 하위 노드인지 여부를 나타내는 값을 가져옵니다.
Protected 메서드MemberwiseClone현재 Object의 단순 복사본을 만듭니다. (Object에서 상속됨)
Public 메서드ToString SiteMapNode 클래스의 이 인스턴스 값을 해당하는 문자열 표현으로 변환합니다. (Object.ToString()을(를) 재정의함)
위쪽

  이름설명
명시적 인터페이스 구현Private 메서드ICloneable.Clone인프라입니다. 현재 노드의 복사본인 새 노드를 만듭니다. 이 멤버에 대한 설명은 ICloneable.Clone를 참조하십시오.
명시적 인터페이스 구현Private 메서드IHierarchyData.GetChildren현재 항목의 계층적 자식 데이터 항목을 검색합니다. 이 멤버에 대한 설명은 IHierarchyData.GetChildren를 참조하십시오.
명시적 인터페이스 구현Private 메서드IHierarchyData.GetParent현재 항목의 계층적 부모를 검색합니다. 이 멤버에 대한 설명은 IHierarchyData.GetParent를 참조하십시오.
명시적 인터페이스 구현Private 속성IHierarchyData.HasChildren현재 SiteMapNode 개체에 자식 노드가 있는지 여부를 나타내는 값을 가져옵니다. 이 멤버에 대한 설명은 IHierarchyData.HasChildren를 참조하십시오.
명시적 인터페이스 구현Private 속성IHierarchyData.Item계층적 데이터 항목을 가져옵니다. 이 멤버에 대한 설명은 IHierarchyData.Item를 참조하십시오.
명시적 인터페이스 구현Private 속성IHierarchyData.Path계층적 데이터 항목의 경로를 가져옵니다. 이 멤버에 대한 설명은 IHierarchyData.Path를 참조하십시오.
명시적 인터페이스 구현Private 속성IHierarchyData.Type계층적 데이터 항목의 형식 이름을 나타내는 문자열을 가져옵니다. 이 멤버에 대한 설명은 IHierarchyData.Type를 참조하십시오.
명시적 인터페이스 구현Private 속성INavigateUIData.Description사이트 맵 노드의 Description 속성을 가져옵니다. 이 멤버에 대한 설명은 INavigateUIData.Description를 참조하십시오.
명시적 인터페이스 구현Private 속성INavigateUIData.Name사이트 맵 노드의 Title 속성을 가져옵니다. 이 멤버에 대한 설명은 INavigateUIData.Name를 참조하십시오.
명시적 인터페이스 구현Private 속성INavigateUIData.NavigateUrl사이트 맵 노드의 Url 속성을 가져옵니다. 이 멤버에 대한 설명은 INavigateUIData.NavigateUrl를 참조하십시오.
명시적 인터페이스 구현Private 속성INavigateUIData.Value사이트 맵 노드의 Title 속성을 가져옵니다. 이 멤버에 대한 설명은 INavigateUIData.Value를 참조하십시오.
위쪽

SiteMapNode 개체는 사이트 맵 구조에서 웹 사이트의 페이지를 나타냅니다. 하나 이상의 사이트 맵 공급자를 사용하는 정적 SiteMap 클래스는 런타임에 SiteMapNode 개체를 로드합니다. SiteMapPath 컨트롤과 같은 웹 서버 컨트롤에 의한 사용을 위해 SiteMapNodeItem 클래스가 SiteMapNode 개체를 래핑합니다.

SiteMapNode 클래스에는 Url, Title, Description 속성 등의 페이지를 설명하는 속성을 포함하여 웹 사이트의 단일 페이지를 설명하는 데 사용되는 여러 속성이 있습니다. Url 속성은 ASP.NET의 기본 사이트 맵 공급자인 XmlSiteMapProvider 클래스에 의해 공급자가 내부 컬렉션에서 노드를 추적하는 데 사용하는 조회 키로 사용되는 반면, SiteMapNode 클래스는 사이트 맵 공급자가 노드를 추적하는 데 사용할 수 있는 기본 Key 속성을 지원합니다. 또한 Url 속성은 탐색 컨트롤에서 탐색 구조 내의 페이지에 대한 하이퍼링크를 렌더링하는 데 사용됩니다. Title 속성은 SiteMapNode의 이름이며 대개 Web Form의 HTML 제목과 동일하고 탐색 컨트롤에서 간단한 레이블을 렌더링하는 데 사용됩니다. 마지막으로 추가 Attributes 특성의 NameValueCollection 컬렉션은 SiteMapNode 개체를 사용하는 사이트 맵 공급자에 사용할 수 있지만 이를 위해서는 기본 SiteMapNode 클래스에 없는 추가 속성이 있어야 합니다.

TopicLocation
방법: 프로그래밍 방식으로 사이트 맵 노드 열거Visual Studio에서 ASP .NET 웹 응용 프로그램 빌드
방법: 여러 사이트 맵 및 사이트 맵 공급자 구성Visual Studio에서 ASP .NET 웹 응용 프로그램 빌드
방법: SiteMapDataSource 웹 서버 컨트롤로 검색되는 노드 필터링Visual Studio에서 ASP .NET 웹 응용 프로그램 빌드
방법: 프로그래밍 방식으로 메모리에서 사이트 맵 노드 수정Visual Studio에서 ASP .NET 웹 응용 프로그램 빌드
방법: 비계층적 웹 서버 컨트롤에서 사이트 맵 데이터 표시Visual Studio에서 ASP .NET 웹 응용 프로그램 빌드
방법: 간단한 사이트 탐색 추가Visual Studio에서 ASP .NET 웹 응용 프로그램 빌드
방법: ASP.NET 사이트 맵 공급자 구현Visual Studio에서 ASP .NET 웹 응용 프로그램 빌드
방법: 프로그래밍 방식으로 메모리에서 사이트 맵 노드 수정Building ASP .NET Web Applications
방법: 비계층적 웹 서버 컨트롤에서 사이트 맵 데이터 표시Building ASP .NET Web Applications
방법: 프로그래밍 방식으로 사이트 맵 노드 열거Building ASP .NET Web Applications
방법: 여러 사이트 맵 및 사이트 맵 공급자 구성Building ASP .NET Web Applications
방법: SiteMapDataSource 웹 서버 컨트롤로 검색되는 노드 필터링Building ASP .NET Web Applications
방법: 프로그래밍 방식으로 사이트 맵 노드 열거Visual Studio에서 ASP .NET 웹 응용 프로그램 빌드
방법: 여러 사이트 맵 및 사이트 맵 공급자 구성Visual Studio에서 ASP .NET 웹 응용 프로그램 빌드
방법: SiteMapDataSource 웹 서버 컨트롤로 검색되는 노드 필터링Visual Studio에서 ASP .NET 웹 응용 프로그램 빌드
방법: 프로그래밍 방식으로 메모리에서 사이트 맵 노드 수정Visual Studio에서 ASP .NET 웹 응용 프로그램 빌드
방법: 비계층적 웹 서버 컨트롤에서 사이트 맵 데이터 표시Visual Studio에서 ASP .NET 웹 응용 프로그램 빌드
방법: 간단한 사이트 탐색 추가Visual Studio에서 ASP .NET 웹 응용 프로그램 빌드
방법: ASP.NET 사이트 맵 공급자 구현Visual Studio에서 ASP .NET 웹 응용 프로그램 빌드
방법: 간단한 사이트 탐색 추가Building ASP .NET Web Applications
방법: ASP.NET 사이트 맵 공급자 구현Building ASP .NET Web Applications

이 단원에는 두 개의 코드 예제가 있습니다. 첫 번째 코드 예제에서는 새 사이트 맵 노드 컬렉션을 만들어 요소를 추가하는 방법을 보여 줍니다. 두 번째 코드 예제에서는 텍스트 파일에서 사이트 맵 데이터를 로드하는 방법을 보여 줍니다.

다음 코드 예제에서는 SiteMapNodeCollection 생성자를 사용하여 새 SiteMapNodeCollection 컬렉션을 만든 다음 Add 메서드를 사용하여 요소를 추가하는 방법을 보여 줍니다.


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


다음 코드 예제에서는 SimpleTextSiteMapProvider에서 쉼표로 분리된 문자열에 사이트 맵 데이터가 들어 있는 텍스트 파일을 구문 분석하는 방법을 보여 줍니다. SiteMapNode 개체는 파일에서 각 줄을 읽을 때마다 클래스의 내부 추적 컬렉션에 추가됩니다.

이 코드 예제는 SiteMapProvider 클래스에 대해 제공되는 보다 큰 예제의 일부입니다.


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 &&
                (null == nodeValues[3] || nodeValues[3] == String.Empty))
            {
              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;
}


.NET Framework

4.5, 4, 3.5, 3.0, 2.0에서 지원

Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008(서버 코어 역할은 지원되지 않음), Windows Server 2008 R2(서버 코어 역할은 SP1 이상에서 지원, Itanium은 지원되지 않음)

.NET Framework 에서 모든 플랫폼의 전체 버전을 지원하지는 않습니다. 지원되는 버전의 목록을 보려면 다음을 참조하십시오. .NET Framework 시스템 요구 사항.

이 형식의 static(Visual Basic의 경우 Shared) 모든 공용 멤버는 스레드로부터 안전합니다. 인터페이스 멤버는 스레드로부터 안전하지 않습니다.

커뮤니티 추가 항목

추가
표시:
© 2015 Microsoft