SiteMapNode SiteMapNode SiteMapNode SiteMapNode Class

定義

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
継承
SiteMapNodeSiteMapNodeSiteMapNodeSiteMapNode
実装

このセクションには、2 つのコード例が含まれています。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. 2番目のコード例は、サイトマップデータをテキストファイルから読み込む方法を示しています。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は、サイトマップ構造内の Web サイトページを表します。A SiteMapNode object represents a Web site page in a site map structure. SiteMapNodeオブジェクトは、実行時にSiteMap静的クラスによって読み込まれます。1つまたは複数のサイトマッププロバイダーを使用して、永続ストレージからメモリにサイトマップデータを読み込みます。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オブジェクトは、 SiteMapPathコントロールなどSiteMapNodeItemの Web サーバーコントロールで使用するために、クラスによってラップされます。SiteMapNode objects are wrapped by the SiteMapNodeItem class for use by Web server controls, such as the SiteMapPath control.

クラスSiteMapNodeには、Web サイトUrl内の1ページの説明に使用されるいくつかのプロパティが含まれています。たとえば、 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. このプロパティは、ASP.NET の既定XmlSiteMapProviderのサイトマッププロバイダーであるクラスによって使用されますが、プロバイダーがノードを追跡SiteMapNodeするために使用する内部コレクションの参照キーとして、クラスは基本的なKey Urlサイトマッププロバイダーがノードを追跡するために使用できるプロパティ。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. プロパティは、 SiteMapNodeのフレンドリ名です。多くの場合、Web フォームの HTML タイトルと同じで、単純なラベルを表示するためにナビゲーションコントロールによって使用されます。 TitleThe 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(SiteMapProvider, String) SiteMapNode(SiteMapProvider, String) SiteMapNode(SiteMapProvider, String)

ノードが示すページを識別する指定された key と、ノードを管理するサイト マップ プロバイダーを使用して、SiteMapNode クラスの新しいインスタンスを初期化します。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) SiteMapNode(SiteMapProvider, String, String) SiteMapNode(SiteMapProvider, String, String) SiteMapNode(SiteMapProvider, String, String)

指定された URL、ノードが示すページを識別する key、およびノードを管理するサイト マップ プロバイダーを使用して、SiteMapNode クラスの新しいインスタンスを初期化します。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) SiteMapNode(SiteMapProvider, String, String, String) SiteMapNode(SiteMapProvider, String, String, String) SiteMapNode(SiteMapProvider, String, String, String)

指定された URL、ノードが示すページを識別する key、タイトル、およびノードを管理するサイト マップ プロバイダーを使用して、SiteMapNode クラスの新しいインスタンスを初期化します。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) SiteMapNode(SiteMapProvider, String, String, String, String) SiteMapNode(SiteMapProvider, String, String, String, String) SiteMapNode(SiteMapProvider, String, String, String, String)

指定された URL、ノードが示すページを識別する key、タイトル、およびノードを管理するサイト マップ プロバイダーを使用して、SiteMapNode クラスの新しいインスタンスを初期化します。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) SiteMapNode(SiteMapProvider, String, String, String, String, IList, NameValueCollection, NameValueCollection, String) SiteMapNode(SiteMapProvider, String, String, String, String, IList, NameValueCollection, NameValueCollection, String) 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 Attributes Attributes Attributes

SiteMapNode クラスに定義されている厳密に型指定されたプロパティ以外の追加属性のコレクションを取得または設定します。Gets or sets a collection of additional attributes beyond the strongly typed properties that are defined for the SiteMapNode class.

ChildNodes ChildNodes ChildNodes ChildNodes

関連付けられている SiteMapProvider プロバイダーの現在の SiteMapNode オブジェクトのすべての子ノードを取得または設定します。Gets or sets all the child nodes of the current SiteMapNode object from the associated SiteMapProvider provider.

Description Description Description Description

SiteMapNode の説明を取得または設定します。Gets or sets a description for the SiteMapNode.

HasChildNodes HasChildNodes HasChildNodes HasChildNodes

現在の SiteMapNode に子ノードがあるかどうかを示す値を取得します。Gets a value indicating whether the current SiteMapNode has any child nodes.

Item[String] Item[String] Item[String] Item[String]

指定したキーに基づいて、Attributes コレクションのカスタム属性、またはリソース文字列を取得または設定します。Gets or sets a custom attribute from the Attributes collection or a resource string based on the specified key.

Key Key Key Key

サイト マップ ノードのルックアップ キーを表す文字列を取得します。Gets a string representing a lookup key for a site map node.

NextSibling NextSibling NextSibling 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 ParentNode ParentNode ParentNode

現在のノードの親である SiteMapNode オブジェクトを取得または設定します。Gets or sets the SiteMapNode object that is the parent of the current node.

PreviousSibling PreviousSibling PreviousSibling 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 Provider Provider Provider

SiteMapNode オブジェクトを追跡する SiteMapProvider プロバイダーを取得します。Gets the SiteMapProvider provider that the SiteMapNode object is tracked by.

ReadOnly ReadOnly ReadOnly ReadOnly

サイト マップ ノードを変更できるかどうかを示す値を取得または設定します。Gets or sets a value indicating whether the site map node can be modified.

ResourceKey ResourceKey ResourceKey ResourceKey

SiteMapNode のローカライズに使用するリソース キーを取得または設定します。Gets or sets the resource key that is used to localize the SiteMapNode.

Roles Roles Roles Roles

セキュリティによるトリミング中に使用される SiteMapNode オブジェクトに関連付けられているロールのコレクションを取得または設定します。Gets or sets a collection of roles that are associated with the SiteMapNode object, used during security trimming.

RootNode RootNode RootNode 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 Title Title Title

SiteMapNode オブジェクトのタイトルを取得または設定します。Gets or sets the title of the SiteMapNode object.

Url Url Url Url

SiteMapNode オブジェクトが表すページの URL を取得または設定します。Gets or sets the URL of the page that the SiteMapNode object represents.

メソッド

Clone() Clone() Clone() Clone()

現在のノードのコピーである新しいノードを作成します。Creates a new node that is a copy of the current node.

Clone(Boolean) Clone(Boolean) Clone(Boolean) 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) Equals(Object) Equals(Object) Equals(Object)

現在の SiteMapNode が指定したオブジェクトと同一かどうかを示す値を取得します。Gets a value indicating whether the current SiteMapNode is identical to the specified object.

GetAllNodes() GetAllNodes() GetAllNodes() 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) GetDataSourceView(SiteMapDataSource, String) GetDataSourceView(SiteMapDataSource, String) GetDataSourceView(SiteMapDataSource, String)

現在のノードに関連付けられている SiteMapDataSourceView オブジェクトを取得します。Retrieves the SiteMapDataSourceView object that is associated with the current node.

GetExplicitResourceString(String, String, Boolean) GetExplicitResourceString(String, String, Boolean) GetExplicitResourceString(String, String, Boolean) GetExplicitResourceString(String, String, Boolean)

ローカライズする SiteMapNode 属性、リソースが見つからない場合に返す既定の文字列、およびリソースが見つからない場合に例外をスローするかどうかを示すブール値に基づいて、ローカライズされた文字列を取得します。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() GetHashCode() GetHashCode() GetHashCode()

SiteMapNode オブジェクトのハッシュ コードを返します。Returns the hash code of the SiteMapNode object.

GetHierarchicalDataSourceView() GetHierarchicalDataSourceView() GetHierarchicalDataSourceView() GetHierarchicalDataSourceView()

現在のノードに関連付けられている SiteMapHierarchicalDataSourceView オブジェクトを取得します。Retrieves the SiteMapHierarchicalDataSourceView object that is associated with the current node.

GetImplicitResourceString(String) GetImplicitResourceString(String) GetImplicitResourceString(String) GetImplicitResourceString(String)

属性名と、SiteMapNode の追跡に使用する SiteMapProvider で指定されている ResourceKey プロパティに基づいて、ローカライズされた文字列を取得します。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() GetType() GetType() GetType()

現在のインスタンスの Type を取得します。Gets the Type of the current instance.

(Inherited from Object)
IsAccessibleToUser(HttpContext) IsAccessibleToUser(HttpContext) IsAccessibleToUser(HttpContext) IsAccessibleToUser(HttpContext)

指定したサイト マップ ノードを指定したコンテキストでユーザーが表示できるかどうかを示す値を取得します。Gets a value indicating whether the specified site map node can be viewed by the user in the specified context.

IsDescendantOf(SiteMapNode) IsDescendantOf(SiteMapNode) IsDescendantOf(SiteMapNode) IsDescendantOf(SiteMapNode)

現在のサイト マップ ノードが、指定したノードの子または直接の子孫であるかどうかを示す値を取得します。Gets a value indicating whether the current site map node is a child or a direct descendant of the specified node.

MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

現在の Object の簡易コピーを作成します。Creates a shallow copy of the current Object.

(Inherited from Object)
ToString() ToString() ToString() ToString()

SiteMapNode クラスのインスタンスの値を、それに相当する文字列形式に変換します。Converts the value of this instance of the SiteMapNode class to its equivalent string representation.

明示的なインターフェイスの実装

ICloneable.Clone() ICloneable.Clone() ICloneable.Clone() 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() IHierarchyData.GetChildren() IHierarchyData.GetChildren() IHierarchyData.GetChildren()

現在の項目の階層の子のデータ項目を取得します。Retrieves the hierarchical children data items of the current item. このメンバーの説明については、GetChildren() のトピックを参照してください。For a description of this member, see GetChildren().

IHierarchyData.GetParent() IHierarchyData.GetParent() IHierarchyData.GetParent() IHierarchyData.GetParent()

現在の項目の階層の親を取得します。Retrieves the hierarchical parent of the current item. このメンバーの説明については、GetParent() のトピックを参照してください。For a description of this member, see GetParent().

IHierarchyData.HasChildren IHierarchyData.HasChildren IHierarchyData.HasChildren 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 IHierarchyData.Item IHierarchyData.Item IHierarchyData.Item

階層データ項目を取得します。Gets the hierarchical data item. このメンバーの説明については、Item のトピックを参照してください。For a description of this member, see Item.

IHierarchyData.Path IHierarchyData.Path IHierarchyData.Path IHierarchyData.Path

階層データ項目のパスを取得します。Gets the path of the hierarchical data item. このメンバーの詳細については、「Path」をご覧ください。For a description of this member, see Path.

IHierarchyData.Type IHierarchyData.Type IHierarchyData.Type 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 INavigateUIData.Description INavigateUIData.Description INavigateUIData.Description

サイト マップ ノードの Description プロパティを取得します。Gets the Description property of the site map node. このメンバーの詳細については、「Description」をご覧ください。For a description of this member, see Description.

INavigateUIData.Name INavigateUIData.Name INavigateUIData.Name INavigateUIData.Name

サイト マップ ノードの Title プロパティを取得します。Gets the Title property of the site map node. このメンバーの詳細については、「Name」をご覧ください。For a description of this member, see Name.

INavigateUIData.NavigateUrl INavigateUIData.NavigateUrl INavigateUIData.NavigateUrl INavigateUIData.NavigateUrl

サイト マップ ノードの Url プロパティを取得します。Gets the Url property of the site map node. このメンバーの詳細については、「NavigateUrl」をご覧ください。For a description of this member, see NavigateUrl.

INavigateUIData.Value INavigateUIData.Value INavigateUIData.Value INavigateUIData.Value

サイト マップ ノードの Title プロパティを取得します。Gets the Title property of the site map node. このメンバーの説明については、Value のトピックを参照してください。For a description of this member, see Value.

適用対象

こちらもご覧ください