SiteMap.RootNode プロパティ
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
サイトのナビゲーション構造の最上位ページを表す SiteMapNode オブジェクトを取得します。
public:
static property System::Web::SiteMapNode ^ RootNode { System::Web::SiteMapNode ^ get(); };
public static System.Web.SiteMapNode RootNode { get; }
member this.RootNode : System.Web.SiteMapNode
Public Shared ReadOnly Property RootNode As SiteMapNode
プロパティ値
サイト ナビゲーション構造の最上位ページを表す SiteMapNode。セキュリティ トリミングが有効でノードを現在のユーザーに返せない場合は null
。
例外
このサイト マップ機能は無効になっています。
- または -
RootNode が
null
に解決されました。これは、セキュリティ トリミングが有効で、ルート ノードが現在のユーザーに表示されない場合に発生します。
構成に指定されている既定のプロバイダーが存在しません。
この機能は、信頼性が低以上の場合にのみサポートされます。
例
次のコード例では、ページ階層内の現在の RootNode 場所に関係なく、プロパティを使用してサイトのルート ノードを表すオブジェクトを取得 SiteMapNode する方法を示します。
<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>
<script runat="server">
Private Sub Page_Load(sender As Object, e As 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>
注釈
このクラスは SiteMap 、プロバイダーからプロパティを RootNode 要求してプロパティを取得します。 プロバイダー階層がある場合、クラスは SiteMap 階層内のルート プロバイダーのルート ノードを取得します。 既定のプロバイダーのルート ノードにアクセスするには、既定のプロバイダーとそのRootNodeプロパティのProvider両方を取得するプロパティを呼び出します。
このオブジェクトは XmlSiteMapProvider 、クラスの既定のプロバイダー SiteMap であり、1 つだけ RootNodeをサポートします。
独自 SiteMapProvider のクラスを実装し、抽象 RootNode プロパティをオーバーライドする場合は、インスタンスのプロパティを追跡 RootNode するための独自の実装を指定する SiteMapNode 必要があります。
ルート ノードは、設計上、すべてのユーザーに表示される必要があります。 セキュリティ トリミングが有効になっているときにルート ノードがすべてのユーザーに表示されない場合、プロパティに RootNode アクセスすると例外が発生する InvalidOperationException 可能性があります。