SiteMap クラス

定義

SiteMap クラスは、サイトのナビゲーション構造のインメモリ表現であり、1 つ以上のサイト マップ プロバイダーにより提供されます。 このクラスは継承できません。

public ref class SiteMap abstract sealed
public static class SiteMap
type SiteMap = class
Public Class SiteMap
継承
SiteMap

このセクションには、2 つのコード例が含まれています。 最初のコード例では、Web.config ファイルでサイト マップ プロバイダーを宣言する方法を示します。 2 番目のコード例では、 オブジェクトの使用方法を SiteMap 示します。

次のコード例は、オブジェクトが既定SiteMapProviderのオブジェクトとして宣言される方法をXmlSiteMapProvider示すWeb.config構成セクションです。

<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使用して、 プロパティと CurrentNode プロパティに関する情報を表示する方法をRootNode示します。 コントロールによってレンダリングされる出力と比較します SiteMapPath

<%@ 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>

注釈

サイト マップは、およびその他のSiteMapDataSourceSiteMapPathコントロールと組み合わせて使用され、ユーザーが Web サイト内を移動するための効果的なナビゲーション インターフェイスをレンダリングします。 SiteMapオブジェクトは、ASP.NET サイト ナビゲーション インフラストラクチャのコンポーネントであり、ナビゲーションとSiteMapDataSourceコントロールを使用してページおよびコントロールの開発者が読み取り専用のサイト マップ情報にアクセスできるようにします。 ASP.NET サイト ナビゲーション インフラストラクチャのその他のコンポーネントにはSiteMapProvider、 クラスと XmlSiteMapProvider クラス、Web.sitemap ファイル、およびコンテンツとメニューをレンダリングするためのコントロールなどSiteMapPath、クラスでSiteMap動作するさまざまなコントロールが含まれます。

SiteMapにはいくつかの関数があります。

  • サイト ナビゲーション階層のルート ノードが提供されます (ルート ノードは 1 つだけ存在できます)。

  • これは、どのサイト マップ プロバイダーがプリンシパル (既定のプロバイダー) であるかを識別します。

  • これは、 の作成に使用されるすべてのプロバイダー オブジェクトを追跡します SiteMap

基本的には、 SiteMap はオブジェクトの階層コレクションの SiteMapNode コンテナーです。 ただし、 SiteMap ではノード間のリレーションシップは維持されず、サイト マップ プロバイダーに委任されます。 は SiteMap 、これらのサイト マップ プロバイダーによって保持されるサイト ナビゲーション情報 (オブジェクトの SiteMapNode 形式) へのインターフェイスとして機能します。 サイト ナビゲーション データにアクセスできるプロバイダーを追跡し、その Providers コレクションを公開します。 プロバイダーは、任意の方法でサイト マップ情報を格納できます。抽象クラスを SiteMapProvider 拡張する限り、 SiteMap クラスはそこから正常に初期化できます。

クラスの既定の SiteMap プロバイダーは XmlSiteMapProvider クラスであり、XML 構成ファイル Web.sitemap で動作します。 ただし、独自 SiteMapProvider のオブジェクトを記述し、それを使用してサイトのサイト マップを初期化できます。 カスタム サイト マップ プロバイダーの例については、「」を参照してください SiteMapProvider

サイト ナビゲーション構成を管理する既定のサイト マップ構成が指定されています。 独自のサイト マップ プロバイダーを作成することを選択した場合は、Web.config ファイルでこの構成をオーバーライドできます。

クラスは SiteMap 、パフォーマンスのために静的メンバーのみを提供し、Web フォームまたは Web サーバー コントロールから特定のサイトでいつでもアクセスできます。

プロパティ

CurrentNode

現在要求されているページを表す SiteMapNode コントロールを取得します。

Enabled

Web.config にサイト マップ プロバイダーが指定されているかどうか、およびそれが有効かどうかを示すブール値を取得します。

Provider

現在のサイト マップの既定の SiteMapProvider オブジェクトを取得します。

Providers

SiteMapProvider クラスで使用可能な名前付き SiteMap オブジェクトの読み取り専用コレクションを取得します。

RootNode

サイトのナビゲーション構造の最上位ページを表す SiteMapNode オブジェクトを取得します。

イベント

SiteMapResolve

CurrentNode プロパティがアクセスされると発生します。

適用対象

こちらもご覧ください