SiteMapNodeとは? わかりやすく解説

SiteMapNode クラス

メモ : このクラスは、.NET Framework version 2.0 で新しく追加されたものです。

SiteMap クラスと SiteMapProvider 抽象クラスを実装するクラスとで記述される階層サイト マップ構造に存在するノードを表します。

名前空間: System.Web
アセンブリ: System.Web (system.web.dll 内)
構文構文

Public Class SiteMapNode
    Implements ICloneable, IHierarchyData, INavigateUIData
public class SiteMapNode : ICloneable, IHierarchyData,
 INavigateUIData
public ref class SiteMapNode : ICloneable,
 IHierarchyData, INavigateUIData
public class SiteMapNode implements ICloneable,
 IHierarchyData, 
    INavigateUIData
public class SiteMapNode implements ICloneable,
 IHierarchyData, 
    INavigateUIData
解説解説

SiteMapNode オブジェクトは、サイト マップ構造内の Web サイト ページを表します。SiteMapNode オブジェクトは、サイト マップ データを永続ストレージからメモリに読み込むために、SiteMap 静的クラスによって 1 つ以上のサイト マップ プロバイダを使用して実行時に読み込まれます。SiteMapNode オブジェクトは、SiteMapNodeItem クラスによってラップされ、SiteMapPath コントロールなどの Web サーバー コントロールによって使用されます。

SiteMapNode クラスには、Web サイトの単一ページの記述に使用するいくつかのプロパティが含まれています。Url、Title、および Description の各プロパティなどです。Url プロパティは、ASP.NET の既定サイト マップ プロバイダである XmlSiteMapProvider クラスによって、プロバイダがノードの追跡に使用する内部コレクションのルックアップ キーとして使用されます。一方 SiteMapNode クラスは、サイト マップ プロバイダがノードの追跡に使用できる Key 基本プロパティをサポートします。また、Url プロバイダをナビゲーション コントロールで使用して、ナビゲーション構造内にページへのハイパーリンクを表示することもできます。Title プロパティは SiteMapNode の表示名で、Web フォームの HTML タイトルと同じであることが多く、ナビゲーション コントロールによってシンプルなラベルの表示に使用されます。最後に、SiteMapNode オブジェクトを使用するサイト マップ プロバイダは、Attributes 追加属性の NameValueCollection コレクションを使用できますが、SiteMapNode 基本クラスにない追加プロパティが必要になります。

使用例使用例

このセクションには、2 つのコード例が含まれています。新しいサイト マップ ノード コレクションを作成して、それに要素を追加する方法を最初のコード例に示します。サイト マップ データをテキスト ファイルから読み込む方法を 2 番目のコード例に示します。

SiteMapNodeCollection コンストラクタを使用して新しい SiteMapNodeCollection コレクションを作成し、Add メソッドを使用してそれに要素を追加する方法を次のコード例に示します。

' 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

// 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 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 'LoadSiteMapFromStore
End Class 'SimpleTextSiteMapProvider
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 のセキュリティ.NET Framework のセキュリティ
継承階層継承階層
System.Object
  System.Web.SiteMapNode
スレッド セーフスレッド セーフ
この型の public static (Visual Basic では Shared) メンバはすべて、スレッド セーフです。インスタンス メンバの場合は、スレッド セーフであるとは限りません。
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照

SiteMapNode コンストラクタ (SiteMapProvider, String, String, String, String)

メモ : このコンストラクタは、.NET Framework version 2.0 で新しく追加されたものです。

SiteMapNode クラスの新しいインスタンスを、指定した URL、ノードが表すページを示す key、タイトルと説明、およびノードを管理するサイト マップ プロバイダを使用して初期化します。

名前空間: System.Web
アセンブリ: System.Web (system.web.dll 内)
構文構文

例外例外
例外の種類条件

ArgumentNullException

SiteMapProvider が null 参照 (Visual Basic では Nothing) です。

または

key が null 参照 (Visual Basic では Nothing) です。

解説解説

ASP.NET が既定で実装する SiteMapProvider プロバイダである XmlSiteMapProvider クラスは、SiteMapNode.Url プロパティがノードに対して指定されている場合、それをルックアップ キーとして使用します (URL が指定されない場合は、ノードの追跡 ID が生成されます)。したがって、URL を提供し、XmlSiteMapProvider によって使用されるすべての SiteMapNode オブジェクトには、プロバイダのスコープ内で重複しない URL が割り当てられている必要があります。

title または description の提供がない場合、Title プロパティまたは Description プロパティを呼び出すと String.Empty フィールドが返されます。

使用例使用例

SiteMapNode コンストラクタを使用し、簡単なテキスト ファイルからのデータを解析して SiteMapNode オブジェクトを作成し、サイト マップをメモリ内に構築する方法を次のコード例に示します。

このコード例は、SiteMapProvider 抽象クラスのトピックで取り上げているコード例の一部分です。

  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 'LoadSiteMapFromStore
End Class 'SimpleTextSiteMapProvider
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;
}
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照
関連項目
SiteMapNode クラス
SiteMapNode メンバ
System.Web 名前空間
SiteMapProvider

SiteMapNode コンストラクタ (SiteMapProvider, String, String, String)

メモ : このコンストラクタは、.NET Framework version 2.0 で新しく追加されたものです。

SiteMapNode クラスの新しいインスタンスを、指定した URL、ノードが表すページを示す key、タイトル、およびノードを管理するサイト マップ プロバイダを使用して初期化します。

名前空間: System.Web
アセンブリ: System.Web (system.web.dll 内)
構文構文

例外例外
例外の種類条件

ArgumentNullException

SiteMapProvider が null 参照 (Visual Basic では Nothing) です。

または

key が null 参照 (Visual Basic では Nothing) です。

解説解説

ASP.NET が既定で実装する SiteMapProvider プロバイダである XmlSiteMapProvider クラスは、SiteMapNode.Url プロパティがノードに対して指定されている場合、それをルックアップ キーとして使用します (URL が指定されない場合は、ノードの追跡 ID が生成されます)。したがって、URL を提供し、XmlSiteMapProvider によって使用されるすべての SiteMapNode オブジェクトには、プロバイダのスコープ内で重複しない URL が割り当てられている必要があります。

title の提供がない場合、Title プロパティを呼び出すと String.Empty フィールドが返されます。

使用例使用例

SiteMapNode コンストラクタを使用して SiteMapNode クラスの新しいインスタンスを作成する方法を次のコード例に示します。ノードは、Microsoft Access データベース行から取得した値で初期化されます。

次のコード例は BuildSiteMap メソッドの例の一部です。

Dim rootNodeCommand As New
 OleDbCommand("SELECT nodeid, url, name FROM SiteMap WHERE parentnodeid
 IS NULL", accessConnection)
Dim rootNodeReader As OleDbDataReader = rootNodeCommand.ExecuteReader()

If rootNodeReader.HasRows Then
    rootNodeReader.Read()
    rootNodeId = rootNodeReader.GetInt32(0)
    ' Create a SiteMapNode that references the current StaticSiteMapProvider.
    aRootNode = New SiteMapNode(Me, rootNodeId.ToString(),
 rootNodeReader.GetString(1), rootNodeReader.GetString(2))
Else
    Return Nothing
End If
rootNodeReader.Close()
OleDbCommand rootNodeCommand =
    new OleDbCommand("SELECT nodeid, url, name FROM SiteMap
 WHERE parentnodeid IS NULL",
                     accessConnection);
OleDbDataReader rootNodeReader = rootNodeCommand.ExecuteReader();

if(rootNodeReader.HasRows) {
    rootNodeReader.Read();
    rootNodeId = rootNodeReader.GetInt32(0);
    // Create a SiteMapNode that references the current StaticSiteMapProvider.
    rootNode   = new SiteMapNode(this,
                                 rootNodeId.ToString(),
                                 rootNodeReader.GetString(1),
                                 rootNodeReader.GetString(2));

}
else return null;

rootNodeReader.Close();
OleDbCommand^ rootNodeCommand = gcnew OleDbCommand
   ("SELECT nodeid, url, name FROM SiteMap WHERE parentnodeid IS NULL",
 accessConnection);
OleDbDataReader^ rootNodeReader = rootNodeCommand->ExecuteReader();
if ( rootNodeReader->HasRows )
{
   rootNodeReader->Read();
   rootNodeId = rootNodeReader->GetInt32( 0 );
   
   // Create a SiteMapNode that references the current StaticSiteMapProvider.
   rootNode = gcnew SiteMapNode(this, rootNodeId.ToString(), 
      rootNodeReader->GetString( 1 ),rootNodeReader->GetString( 2 ));
}
else
   return nullptr;
rootNodeReader->Close();

プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照

SiteMapNode コンストラクタ (SiteMapProvider, String, String)

メモ : このコンストラクタは、.NET Framework version 2.0 で新しく追加されたものです。

SiteMapNode クラスの新しいインスタンスを、指定した URL、ノードが表すページを示す key、およびノードを管理するサイト マップ プロバイダを使用して初期化します。

名前空間: System.Web
アセンブリ: System.Web (system.web.dll 内)
構文構文

Public Sub New ( _
    provider As SiteMapProvider, _
    key As String, _
    url As String _
)
Dim provider As SiteMapProvider
Dim key As String
Dim url As String

Dim instance As New SiteMapNode(provider,
 key, url)
public SiteMapNode (
    SiteMapProvider provider,
    string key,
    string url
)
public:
SiteMapNode (
    SiteMapProvider^ provider, 
    String^ key, 
    String^ url
)
public SiteMapNode (
    SiteMapProvider provider, 
    String key, 
    String url
)
public function SiteMapNode (
    provider : SiteMapProvider, 
    key : String, 
    url : String
)

パラメータ

provider

ノードを関連付ける SiteMapProvider。

key

プロバイダ固有のルックアップ キー。

url

サイト内の、ノードが表すページの URL。

例外例外
例外の種類条件

ArgumentNullException

SiteMapProvider が null 参照 (Visual Basic では Nothing) です。

または

key が null 参照 (Visual Basic では Nothing) です。

解説解説

ASP.NET が既定で実装する SiteMapProvider プロバイダである XmlSiteMapProvider クラスは、SiteMapNode.Url プロパティがノードに対して指定されている場合、それをルックアップ キーとして使用します (URL が指定されない場合は、ノードの追跡 ID が生成されます)。したがって、URL を提供し、XmlSiteMapProvider によって使用されるすべての SiteMapNode オブジェクトには、プロバイダのスコープ内で重複しない URL が割り当てられている必要があります。

使用例使用例

SiteMapNodeCollection コンストラクタを使用して新しい SiteMapNodeCollection コレクションを作成し、Add メソッドを使用してそれに要素を追加する方法を次のコード例に示します。

' 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

// 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;
}
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照

SiteMapNode コンストラクタ (SiteMapProvider, String, String, String, String, IList, NameValueCollection, NameValueCollection, String)

メモ : このコンストラクタは、.NET Framework version 2.0 で新しく追加されたものです。

SiteMapNode クラスの新しいインスタンスを、ノードを管理する指定されたサイト マップ プロバイダ、URL、タイトル、説明、ロール、追加属性、およびローカライズに使用する明示的なリソース キーと暗黙のリソース キーを使用して、初期化します。

名前空間: System.Web
アセンブリ: System.Web (system.web.dll 内)
構文構文

Public Sub New ( _
    provider As SiteMapProvider, _
    key As String, _
    url As String, _
    title As String, _
    description As String, _
    roles As IList, _
    attributes As NameValueCollection, _
    explicitResourceKeys As NameValueCollection, _
    implicitResourceKey As String _
)
Dim provider As SiteMapProvider
Dim key As String
Dim url As String
Dim title As String
Dim description As String
Dim roles As IList
Dim attributes As NameValueCollection
Dim explicitResourceKeys As NameValueCollection
Dim implicitResourceKey As String

Dim instance As New SiteMapNode(provider,
 key, url, title, description, roles, attributes, explicitResourceKeys, implicitResourceKey)
public SiteMapNode (
    SiteMapProvider provider,
    string key,
    string url,
    string title,
    string description,
    IList roles,
    NameValueCollection attributes,
    NameValueCollection explicitResourceKeys,
    string implicitResourceKey
)
public:
SiteMapNode (
    SiteMapProvider^ provider, 
    String^ key, 
    String^ url, 
    String^ title, 
    String^ description, 
    IList^ roles, 
    NameValueCollection^ attributes, 
    NameValueCollection^ explicitResourceKeys, 
    String^ implicitResourceKey
)
public SiteMapNode (
    SiteMapProvider provider, 
    String key, 
    String url, 
    String title, 
    String description, 
    IList roles, 
    NameValueCollection attributes, 
    NameValueCollection explicitResourceKeys, 
    String implicitResourceKey
)
public function SiteMapNode (
    provider : SiteMapProvider, 
    key : String, 
    url : String, 
    title : String, 
    description : String, 
    roles : IList, 
    attributes : NameValueCollection, 
    explicitResourceKeys : NameValueCollection, 
    implicitResourceKey : String
)

パラメータ

provider

ノードを関連付ける SiteMapProvider。

key

プロバイダ固有のルックアップ キー。

url

サイト内の、ノードが表すページの URL。

title

ナビゲーション コントロールによる表示などに使用される、ノードのラベル。

description

ノードが表すページの説明。

roles

SiteMapNode で表されるページを表示できるロールの IList。

attributes

SiteMapNode の初期化に使用する追加属性の NameValueCollection。

explicitResourceKeys

ローカリゼーションに使用する明示的なリソース キーの NameValueCollection。

implicitResourceKey

ローカリゼーションに使用する暗黙のリソース キー。

例外例外
例外の種類条件

ArgumentNullException

SiteMapProvider が null 参照 (Visual Basic では Nothing) です。

または

key が null 参照 (Visual Basic では Nothing) です。

解説解説

ASP.NET が既定で実装する SiteMapProvider プロバイダである XmlSiteMapProvider クラスは、SiteMapNode.Url プロパティがノードに対して指定されている場合、それをルックアップ キーとして使用します (URL が指定されない場合は、ノードの追跡 ID が生成されます)。したがって、URL を提供し、XmlSiteMapProvider によって使用されるすべての SiteMapNode オブジェクトには、プロバイダのスコープ内で重複しない URL が割り当てられている必要があります。

SiteMapNode の作成に使用する属性の NameValueCollection コレクションは、Attributes プロパティを介して使用できます。この場合、追加属性をサイト マップ ノードに簡単に適用でき、派生カスタム クラスを作成しなくても機能を拡張できます。

SecurityTrimmingEnabled プロパティが true を返した場合、ロールの IList コレクションを提供して、ノードを表示できるロールのセットを提供します。詳細については、「SecurityTrimmingEnabled」を参照してください。

XmlSiteMapProvider プロバイダは SiteMapNode.Url プロパティをルックアップ キーとして使用します。したがって、XmlSiteMapProvider によって使用されるすべての SiteMapNode には、プロバイダのスコープ内で重複しない URL が割り当てられている必要があります。

title または description の提供がない場合、Title プロパティまたは Description プロパティを呼び出すと String.Empty フィールドが返されます。

プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照
関連項目
SiteMapNode クラス
SiteMapNode メンバ
System.Web 名前空間
SecurityTrimmingEnabled
IsAccessibleToUser

SiteMapNode コンストラクタ

SiteMapNode クラスの新しいインスタンスを初期化し、それを指定した SiteMapProvider オブジェクトに関連付けます。
オーバーロードの一覧オーバーロードの一覧

名前 説明
SiteMapNode (SiteMapProvider, String) SiteMapNode クラスの新しいインスタンスを、ノードが表すページを示す指定した key とノードを管理するサイト マップ プロバイダを使用して初期化します。
SiteMapNode (SiteMapProvider, String, String) SiteMapNode クラスの新しいインスタンスを、指定した URL、ノードが表すページを示す key、およびノードを管理するサイト マップ プロバイダを使用して初期化します。
SiteMapNode (SiteMapProvider, String, String, String) SiteMapNode クラスの新しいインスタンスを、指定した URL、ノードが表すページを示す key、タイトル、およびノードを管理するサイト マップ プロバイダを使用して初期化します。
SiteMapNode (SiteMapProvider, String, String, String, String) SiteMapNode クラスの新しいインスタンスを、指定した URL、ノードが表すページを示す key、タイトルと説明、およびノードを管理するサイト マップ プロバイダを使用して初期化します。
SiteMapNode (SiteMapProvider, String, String, String, String, IList, NameValueCollection, NameValueCollection, String) SiteMapNode クラスの新しいインスタンスを、ノードを管理する指定されたサイト マップ プロバイダ、URL、タイトル、説明、ロール、追加属性、およびローカライズに使用する明示的なリソース キーと暗黙のリソース キーを使用して、初期化します。
参照参照

関連項目

SiteMapNode クラス
SiteMapNode メンバ
System.Web 名前空間

SiteMapNode コンストラクタ (SiteMapProvider, String)

メモ : このコンストラクタは、.NET Framework version 2.0 で新しく追加されたものです。

SiteMapNode クラスの新しいインスタンスを、ノードが表すページを示す指定した key とノードを管理するサイト マップ プロバイダを使用して初期化します。

名前空間: System.Web
アセンブリ: System.Web (system.web.dll 内)
構文構文

Public Sub New ( _
    provider As SiteMapProvider, _
    key As String _
)
Dim provider As SiteMapProvider
Dim key As String

Dim instance As New SiteMapNode(provider,
 key)
public SiteMapNode (
    SiteMapProvider provider,
    string key
)
public:
SiteMapNode (
    SiteMapProvider^ provider, 
    String^ key
)
public SiteMapNode (
    SiteMapProvider provider, 
    String key
)
public function SiteMapNode (
    provider : SiteMapProvider, 
    key : String
)

パラメータ

provider

ノードを関連付ける SiteMapProvider。

key

プロバイダ固有のルックアップ キー。

例外例外
例外の種類条件

ArgumentNullException

SiteMapProvider が null 参照 (Visual Basic では Nothing) です。

または

key が null 参照 (Visual Basic では Nothing) です。

解説解説

ASP.NET が既定で実装する SiteMapProvider プロバイダである XmlSiteMapProvider クラスは、SiteMapNode.Url プロパティがノードに対して指定されている場合、それをルックアップ キーとして使用します (URL が指定されない場合は、ノードの追跡 ID が生成されます)。したがって、URL を提供し、XmlSiteMapProvider によって使用されるすべての SiteMapNode コントロールには、プロバイダのスコープ内で重複しない URL が割り当てられている必要があります。

プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照

SiteMapNode プロパティ


パブリック プロパティパブリック プロパティ

( プロテクト プロパティ も参照)
  名前 説明
パブリック プロパティ ChildNodes 関連付けられている SiteMapProvider プロバイダに対し、現在の SiteMapNode オブジェクトのすべての子ノードを取得または設定します。
パブリック プロパティ Description SiteMapNode の説明を取得または設定します。
パブリック プロパティ HasChildNodes 現在の SiteMapNode に子ノードがあるかどうかを示す値を取得します。
パブリック プロパティ Item Attributes コレクションのカスタム属性、またはリソース文字列を、指定したキーに基づいて取得または設定します。
パブリック プロパティ Key サイト マップ ノードのルックアップ キーを表す文字列を取得します。
パブリック プロパティ NextSibling 現在のノードと同じ階層レベルにおける次の SiteMapNode ノードを取得します。これは、ParentNode プロパティが存在する場合は、それに相対するものです。
パブリック プロパティ ParentNode 現在のノードの親である SiteMapNode オブジェクトを取得または設定します。
パブリック プロパティ PreviousSibling 現在のノードと同じレベルにおける前の SiteMapNode オブジェクトを取得します。これは、ParentNode オブジェクトが存在する場合は、それに相対するものです。
パブリック プロパティ Provider SiteMapNode オブジェクトを追跡する SiteMapProvider プロバイダを取得します。
パブリック プロパティ ReadOnly サイト マップ ノードを変更できるかどうかを示す値を取得または設定します。
パブリック プロパティ ResourceKey SiteMapNode のローカライズに使用するリソース キーを取得または設定します。
パブリック プロパティ Roles セキュリティ トリミングで使用される、SiteMapNode オブジェクトに関連付けられているロールのコレクションを取得または設定します。
パブリック プロパティ RootNode サイト マップ プロバイダ階層のルート プロバイダのルート ノードを取得します。プロバイダ階層が存在しない場合、RootNode プロパティは現在のプロバイダのルート ノードを取得します。
パブリック プロパティ Title SiteMapNode オブジェクトのタイトルを取得または設定します。
パブリック プロパティ Url SiteMapNode オブジェクトが表すページの URL を取得または設定します。
プロテクト プロパティプロテクト プロパティ
明示的インターフェイスの実装明示的インターフェイスの実装
  名前 説明
インターフェイスの明示的な実装 System.Web.UI.IHierarchyData.HasChildren 現在の SiteMapNode オブジェクトに子ノードがあるかどうかを示す値を取得します。このメンバの説明については、IHierarchyData.HasChildren のトピックを参照してください。
インターフェイスの明示的な実装 System.Web.UI.IHierarchyData.Item 階層データ項目を取得します。このメンバの説明については、IHierarchyData.Item のトピックを参照してください。
インターフェイスの明示的な実装 System.Web.UI.IHierarchyData.Path 階層データ項目のパスを取得します。このメンバの説明については、IHierarchyData.Path のトピックを参照してください。
インターフェイスの明示的な実装 System.Web.UI.IHierarchyData.Type 階層データ項目の型名を表す文字列を取得します。このメンバの説明については、IHierarchyData.Type のトピックを参照してください。
インターフェイスの明示的な実装 System.Web.UI.INavigateUIData.Description サイト マップ ノードの Description プロパティを取得します。このメンバの説明については、INavigateUIData.Description のトピックを参照してください。
インターフェイスの明示的な実装 System.Web.UI.INavigateUIData.Name サイト マップ ノードの Title プロパティを取得します。このメンバの説明については、INavigateUIData.Name のトピックを参照してください。
インターフェイスの明示的な実装 System.Web.UI.INavigateUIData.NavigateUrl サイト マップ ノードの Url プロパティを取得します。このメンバの説明については、INavigateUIData.NavigateUrl のトピックを参照してください。
インターフェイスの明示的な実装 System.Web.UI.INavigateUIData.Value サイト マップ ノードの Title プロパティを取得します。このメンバの説明については、INavigateUIData.Value のトピックを参照してください。
参照参照

関連項目

SiteMapNode クラス
System.Web 名前空間
SiteMap クラス
SiteMapProvider
XmlSiteMapProvider

その他の技術情報

ASP.NET サイト ナビゲーションの概要
ASP.NET サイト マップ

SiteMapNode メソッド


パブリック メソッドパブリック メソッド

( プロテクト メソッド も参照)
  名前 説明
パブリック メソッド Clone オーバーロードされます。 現在のノードのコピーである新しいノードを作成します。
パブリック メソッド Equals オーバーロードされます。 オーバーライドされます。 2 つのオブジェクトが等しいかどうかを判断します。
パブリック メソッド GetAllNodes 呼び出し元ノードの子孫であるすべての SiteMapNode オブジェクトの読み取り専用コレクションを取得します。その際、呼び出し元ノードとの関係の遠近による制限はありません。
パブリック メソッド GetDataSourceView 現在のノードに関連付けられている SiteMapDataSourceView オブジェクトを取得します。
パブリック メソッド GetHashCode オーバーライドされます。 SiteMapNode オブジェクトのハッシュ コードを返します。
パブリック メソッド GetHierarchicalDataSourceView 現在のノードに関連付けられている SiteMapHierarchicalDataSourceView オブジェクトを取得します。
パブリック メソッド GetType  現在のインスタンスの Type を取得します。 ( Object から継承されます。)
パブリック メソッド IsAccessibleToUser 指定したサイト マップ ノードを指定したコンテキストでユーザーが表示できるかどうかを示す値を取得します。
パブリック メソッド IsDescendantOf 現在のサイト マップ ノードが指定したノードの子または直接の子孫であるかどうかを示す値を取得します。
パブリック メソッド ReferenceEquals  指定した複数の Object インスタンスが同一かどうかを判断します。 ( Object から継承されます。)
パブリック メソッド ToString オーバーライドされます。 SiteMapNode クラスのインスタンスの値を、それと等価の文字列形式に変換します。
プロテクト メソッドプロテクト メソッド
明示的インターフェイスの実装明示的インターフェイスの実装
  名前 説明
インターフェイスの明示的な実装 System.ICloneable.Clone 現在のノードのコピーである新しいノードを作成します。このメンバの説明については、ICloneable.Clone のトピックを参照してください。
インターフェイスの明示的な実装 System.Web.UI.IHierarchyData.GetChildren 階層における現在の項目の子データ項目を取得します。このメンバの説明については、IHierarchyData.GetChildren のトピックを参照してください。
インターフェイスの明示的な実装 System.Web.UI.IHierarchyData.GetParent 階層における現在の項目の親を取得します。このメンバの説明については、IHierarchyData.GetParent のトピックを参照してください。
参照参照

関連項目

SiteMapNode クラス
System.Web 名前空間
SiteMap クラス
SiteMapProvider
XmlSiteMapProvider

その他の技術情報

ASP.NET サイト ナビゲーションの概要
ASP.NET サイト マップ

SiteMapNode メンバ

SiteMap クラスと SiteMapProvider 抽象クラスを実装するクラスとで記述される階層サイト マップ構造に存在するノードを表します。

SiteMapNode データ型で公開されるメンバを以下の表に示します。


パブリック コンストラクタパブリック コンストラクタ
パブリック プロパティパブリック プロパティ
( プロテクト プロパティ も参照)
  名前 説明
パブリック プロパティ ChildNodes 関連付けられている SiteMapProvider プロバイダに対し、現在の SiteMapNode オブジェクトのすべての子ノードを取得または設定します。
パブリック プロパティ Description SiteMapNode の説明を取得または設定します。
パブリック プロパティ HasChildNodes 現在の SiteMapNode に子ノードがあるかどうかを示す値を取得します。
パブリック プロパティ Item Attributes コレクションのカスタム属性、またはリソース文字列を、指定したキーに基づいて取得または設定します。
パブリック プロパティ Key サイト マップ ノードのルックアップ キーを表す文字列を取得します。
パブリック プロパティ NextSibling 現在のノードと同じ階層レベルにおける次の SiteMapNode ノードを取得します。これは、ParentNode プロパティが存在する場合は、それに相対するものです。
パブリック プロパティ ParentNode 現在のノードの親である SiteMapNode オブジェクトを取得または設定します。
パブリック プロパティ PreviousSibling 現在のノードと同じレベルにおける前の SiteMapNode オブジェクトを取得します。これは、ParentNode オブジェクトが存在する場合は、それに相対するものです。
パブリック プロパティ Provider SiteMapNode オブジェクトを追跡する SiteMapProvider プロバイダを取得します。
パブリック プロパティ ReadOnly サイト マップ ノードを変更できるかどうかを示す値を取得または設定します。
パブリック プロパティ ResourceKey SiteMapNode のローカライズに使用するリソース キーを取得または設定します。
パブリック プロパティ Roles セキュリティ トリミングで使用される、SiteMapNode オブジェクトに関連付けられているロールのコレクションを取得または設定します。
パブリック プロパティ RootNode サイト マップ プロバイダ階層のルート プロバイダのルート ノードを取得します。プロバイダ階層が存在しない場合、RootNode プロパティは現在のプロバイダのルート ノードを取得します。
パブリック プロパティ Title SiteMapNode オブジェクトのタイトルを取得または設定します。
パブリック プロパティ Url SiteMapNode オブジェクトが表すページの URL を取得または設定します。
プロテクト プロパティプロテクト プロパティ
パブリック メソッドパブリック メソッド
( プロテクト メソッド も参照)
  名前 説明
パブリック メソッド Clone オーバーロードされます。 現在のノードのコピーである新しいノードを作成します。
パブリック メソッド Equals オーバーロードされます。 オーバーライドされます。 2 つのオブジェクトが等しいかどうかを判断します。
パブリック メソッド GetAllNodes 呼び出し元ノードの子孫であるすべての SiteMapNode オブジェクトの読み取り専用コレクションを取得します。その際、呼び出し元ノードとの関係の遠近による制限はありません。
パブリック メソッド GetDataSourceView 現在のノードに関連付けられている SiteMapDataSourceView オブジェクトを取得します。
パブリック メソッド GetHashCode オーバーライドされます。 SiteMapNode オブジェクトのハッシュ コードを返します。
パブリック メソッド GetHierarchicalDataSourceView 現在のノードに関連付けられている SiteMapHierarchicalDataSourceView オブジェクトを取得します。
パブリック メソッド GetType  現在のインスタンスの Type を取得します。 (Object から継承されます。)
パブリック メソッド IsAccessibleToUser 指定したサイト マップ ノードを指定したコンテキストでユーザーが表示できるかどうかを示す値を取得します。
パブリック メソッド IsDescendantOf 現在のサイト マップ ノードが指定したノードの子または直接の子孫であるかどうかを示す値を取得します。
パブリック メソッド ReferenceEquals  指定した複数の Object インスタンスが同一かどうかを判断します。 (Object から継承されます。)
パブリック メソッド ToString オーバーライドされます。 SiteMapNode クラスのインスタンスの値を、それと等価の文字列形式に変換します。
プロテクト メソッドプロテクト メソッド
明示的インターフェイスの実装明示的インターフェイスの実装
  名前 説明
インターフェイスの明示的な実装 System.ICloneable.Clone 現在のノードのコピーである新しいノードを作成します。このメンバの説明については、ICloneable.Clone のトピックを参照してください。
インターフェイスの明示的な実装 System.Web.UI.IHierarchyData.GetChildren 階層における現在の項目の子データ項目を取得します。このメンバの説明については、IHierarchyData.GetChildren のトピックを参照してください。
インターフェイスの明示的な実装 System.Web.UI.IHierarchyData.GetParent 階層における現在の項目の親を取得します。このメンバの説明については、IHierarchyData.GetParent のトピックを参照してください。
インターフェイスの明示的な実装 System.Web.UI.IHierarchyData.HasChildren 現在の SiteMapNode オブジェクトに子ノードがあるかどうかを示す値を取得します。このメンバの説明については、IHierarchyData.HasChildren のトピックを参照してください。
インターフェイスの明示的な実装 System.Web.UI.IHierarchyData.Item 階層データ項目を取得します。このメンバの説明については、IHierarchyData.Item のトピックを参照してください。
インターフェイスの明示的な実装 System.Web.UI.IHierarchyData.Path 階層データ項目のパスを取得します。このメンバの説明については、IHierarchyData.Path のトピックを参照してください。
インターフェイスの明示的な実装 System.Web.UI.IHierarchyData.Type 階層データ項目の型名を表す文字列を取得します。このメンバの説明については、IHierarchyData.Type のトピックを参照してください。
インターフェイスの明示的な実装 System.Web.UI.INavigateUIData.Description サイト マップ ノードの Description プロパティを取得します。このメンバの説明については、INavigateUIData.Description のトピックを参照してください。
インターフェイスの明示的な実装 System.Web.UI.INavigateUIData.Name サイト マップ ノードの Title プロパティを取得します。このメンバの説明については、INavigateUIData.Name のトピックを参照してください。
インターフェイスの明示的な実装 System.Web.UI.INavigateUIData.NavigateUrl サイト マップ ノードの Url プロパティを取得します。このメンバの説明については、INavigateUIData.NavigateUrl のトピックを参照してください。
インターフェイスの明示的な実装 System.Web.UI.INavigateUIData.Value サイト マップ ノードの Title プロパティを取得します。このメンバの説明については、INavigateUIData.Value のトピックを参照してください。
参照参照

関連項目

SiteMapNode クラス
System.Web 名前空間
SiteMap クラス
SiteMapProvider
XmlSiteMapProvider

その他の技術情報

ASP.NET サイト ナビゲーションの概要
ASP.NET サイト マップ



英和和英テキスト翻訳

英語⇒日本語日本語⇒英語

辞書ショートカット

すべての辞書の索引

「SiteMapNode」の関連用語

SiteMapNodeのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



SiteMapNodeのページの著作権

   
日本マイクロソフト株式会社日本マイクロソフト株式会社
© 2026 Microsoft.All rights reserved.

©2026 GRAS Group, Inc.RSS