SiteMap クラス
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
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>
注釈
サイト マップは、 、SiteMapPath、およびその他のSiteMapDataSourceコントロールと組み合わせて使用され、ユーザーが Web サイトをナビゲートするための効果的なナビゲーション インターフェイスをレンダリングします。 SiteMapオブジェクトは、ASP.NET サイト ナビゲーション インフラストラクチャのコンポーネントであり、ナビゲーションとSiteMapDataSourceコントロールを使用して、ページおよびコントロールの開発者向けの読み取り専用サイト マップ情報へのアクセスを提供します。 ASP.NET サイト ナビゲーション インフラストラクチャのその他のコンポーネントには SiteMapProvider 、 クラスと XmlSiteMapProvider クラス、Web.sitemap ファイル、およびクラスで SiteMap 動作するさまざまなコントロール (コントロールなど SiteMapPath ) が含まれており、コンテンツとメニューをレンダリングします。
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 プロパティがアクセスされると発生します。 |
適用対象
こちらもご覧ください
.NET