SiteMapDataSource.StartingNodeOffset プロパティとは? わかりやすく解説

Weblio 辞書 > コンピュータ > .NET Framework クラス ライブラリ リファレンス > SiteMapDataSource.StartingNodeOffset プロパティの意味・解説 

SiteMapDataSource.StartingNodeOffset プロパティ

メモ : このプロパティは、.NET Framework version 2.0 で新しく追加されたものです。

データ ソース コントロールによって公開されるルート階層を決定する、開始ノードからの正または負の整数のオフセットを取得または設定します。

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

Public Overridable Property
 StartingNodeOffset As Integer
Dim instance As SiteMapDataSource
Dim value As Integer

value = instance.StartingNodeOffset

instance.StartingNodeOffset = value
public virtual int StartingNodeOffset { get;
 set; }
public:
virtual property int StartingNodeOffset {
    int get ();
    void set (int value);
}
/** @property */
public int get_StartingNodeOffset ()

/** @property */
public void set_StartingNodeOffset (int
 value)
public function get StartingNodeOffset
 () : int

public function set StartingNodeOffset
 (value : int)

プロパティ値
既定値は 0 で、SiteMapDataSource によって公開されるルート階層が開始ノードであることを示します。

解説解説

StartingNodeOffset プロパティに 0 以外の値が設定されている場合は、その設定は開始ノードおよび SiteMapDataSource コントロールによって公開されるサイト マップ データの階層に影響します。StartingNodeOffset の負の整数値または正の整数値は、StartFromCurrentNode プロパティと StartingNodeUrl プロパティで識別される開始ノードからデータ ソース コントロールによって公開されるサブツリーの開始ノードへ、サイト マップ階層を上方向または下方向へオフセットするレベル数を示します。

識別される開始ノードが現在要求されているページを表すノードである場合は、StartingNodeOffset は無視されます。

StartingNodeOffset プロパティに負の数値 -n が設定されている場合、データ ソース コントロールによって公開されるサブツリーの開始ノードは、識別される開始ノードより n レベル上の階層の先祖ノードになります。値 n が階層ツリーにある先祖レベルの数より大きい場合は、サブツリーの開始ノードがサイト マップ階層のルート ノードになります。

StartingNodeOffset プロパティに正の数値 +n が設定されている場合、公開されるサブツリーの開始ノードは、識別される開始ノードより n レベル下の子ノードになります。階層内で子ノードが複数に分岐している可能性があるため、現在要求されているページがある場合は、SiteMapDataSource は、識別される開始ノードと現在要求されているページを表すノード間のパス上で子ノードを直接解決します。現在要求されているページを表すノードが識別される開始ノードのサブツリー内にない場合は、StartingNodeOffset プロパティの値は無視されます。識別される開始ノードから現在要求されているページを表すノードへの下方向のレベルの数が n より小さい場合は、現在要求されているページのノードが開始ノードとして使用されます。

StartingNodeOffset プロパティの値はビューステートに格納されます。

使用例使用例

StartingNodeUrl プロパティと StartingNodeOffset プロパティの影響を示すコード例を次に示します。この例では、複数の ASP.NET ページ、1 つのマスタ ページ、マスタ ページ セクション、および 1 つの Web.sitemap ファイルで構成されます。Web.sitemap ファイルは、サイトの階層構造を定義します。このコード例では、1.aspx、2.aspx、A.aspx、B.aspx などのように一意の URL で識別される多数のページを定義します。

<siteMap>
    <siteMapNode url="Default.aspx"
 title="Root"  description="" roles="">
        <siteMapNode url="A.aspx"
 title="A"  description="" roles="">
            <siteMapNode url="1.aspx"
 title="1"  description="" roles="" />
            <siteMapNode url="2.aspx"
 title="2"  description="" roles="" />
        </siteMapNode>
        <siteMapNode url="B.aspx"
 title="B"  description="" roles="">
            <siteMapNode url="3.aspx"
 title="3"  description="" roles="" />
            <siteMapNode url="4.aspx"
 title="4"  description="" roles="" />
        </siteMapNode>
        <siteMapNode url="C.aspx"
 title="C"  description="" roles="">
            <siteMapNode url="5.aspx"
 title="5"  description="" roles="" />
            <siteMapNode url="6.aspx"
 title="6"  description="" roles="" />
        </siteMapNode>      
    </siteMapNode>
</siteMap>

Site.master ページでは、ContentPlaceHolder コントロール内に SiteMapDataSource コントロールと TreeView コントロールが含まれています。これは StartingNodeUrl プロパティを使用して、Default.aspx として公開される階層の開始ノードを識別します。Site.master ファイルは Default.aspx ページでのみ使用されます。

<%@ Master Language="VB" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD
 XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<script runat="server">

</script>
<html >
<head id="Head1" runat="server">
    <title>Untitled
 Page</title>
</head>
<body>
    <form id="form1" runat="server">
        <div>
            <asp:ContentPlaceHolder ID="SiteMap"
 Runat="server">
                Pick a node:<br /><br
 />
                <asp:TreeView ID="TreeView1"
 Runat="server" ShowExpandCollapse="false" DataSourceID="SiteMapDataSource1"
 MaxDataBindDepth="1" />
                <asp:SiteMapDataSource
 ID="SiteMapDataSource1" Runat="server" StartingNodeUrl="~/Default.aspx"
 ShowStartingNode="false" />
            </asp:ContentPlaceHolder>
            <asp:ContentPlaceHolder ID="MainBody"
 Runat="server"/>
        </div>
    </form>
</body>
</html>

1.aspx、2.aspx、A.aspx、などのその他のすべてのページではマスタ ページ Section.master を使用します。このマスタ ページは Site.master に非常によく似ていますが、試用できる複数の SiteMapDataSource コントロールが含まれています。サイト マップ データを表示する TreeView コントロールは、最初に SiteMapDataSource1 にバインドされます。これによって StartingNodeOffset が 1 に指定されます。これは、現在要求されているページの親ノードが表示されることを示します。ページ 1.aspx を表示すると、TreeView で表示される階層は A、1、2 になります。ただしページ 4.aspx を表示すると、階層は B、3、4 になります。

TreeView の DataSourceID を SiteMapDataSource2 に変更すると、TreeView コントロールでのサイト マップ データの表示が変わります。SiteMapDataSource2 を使用するときは、StartFromCurrentNode プロパティは true に設定されます。これは、サイト マップ データが現在要求されているページに相対して表示され、StartingNodeOffset プロパティが -1 に設定されることを意味します。また、可能な場合に子ノードの 1 つのレベルが表示されることも示します。A.aspx ページを表示するときに表示される階層は、現在のレベルの階層で、B や C などのすべての兄弟が含まれます。1.aspx を表示すると、親ノードは表示されなくなります。

<%@ Master Language="VB" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD
 XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<script runat="server">













</script>
<html >
<head runat="server">
    <title>Untitled
 Page</title>
</head>
<body>
    <form id="form1" runat="server">
        <div>
            <asp:ContentPlaceHolder ID="SiteMap"
 Runat="server">
                <b>Current
 Location:</b>
                <asp:SiteMapPath ID="SiteMapPath1"
 Runat="Server">
                    <CurrentNodeTemplate>
                        <asp:DropDownList ID="DropDownList1"
 DataTextField="Title" DataValueField="Url" AutoPostBack="true"
                            OnDataBound="DropDownList1_DataBound" DataSourceID="SiteMapDataSource2"
 Runat="server"
                            OnSelectedIndexChanged="DropDownList1_SelectedIndexChanged"
 />
                    </CurrentNodeTemplate>
                </asp:SiteMapPath>
                <br />
                <br />
                <a href='<%=
 System.Web.SiteMap.RootNode.Url %>'>Back
 to Top</a>
                <br />
                <br />
                <asp:TreeView ID="TreeView1"
 ShowExpandCollapse="false" Runat="server" DataSourceID="SiteMapDataSource1"
 />
                <asp:SiteMapDataSource ID="SiteMapDataSource2"
 Runat="server" StartingNodeOffset="-1"
                    ShowStartingNode="false" StartFromCurrentNode="true"
 />
                <asp:SiteMapDataSource
 ID="SiteMapDataSource1" Runat="server" StartingNodeOffset="1"
 />
            </asp:ContentPlaceHolder>
            <asp:ContentPlaceHolder ID="MainBody"
 Runat="server" />
        </div>
    </form>
</body>
</html>

このコード例のその他のコンポーネントと併せて使用できる ASP.NET ページのコード例を次に示します。

<%@ Page MasterPageFile="~/Section.master" Title="Untitled Page" %>

<asp:Content ID="Content1" ContentPlaceHolderID=MainBody Runat=Server>
  <h2>1.aspx</h2>
</asp:Content>
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照
関連項目
SiteMapDataSource クラス
SiteMapDataSource メンバ
System.Web.UI.WebControls 名前空間
StartingNodeUrl
SiteMapDataSource.StartFromCurrentNode プロパティ
その他の技術情報
ASP.NET サイト ナビゲーション



英和和英テキスト翻訳

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

辞書ショートカット

すべての辞書の索引

SiteMapDataSource.StartingNodeOffset プロパティのお隣キーワード
検索ランキング

   

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



SiteMapDataSource.StartingNodeOffset プロパティのページの著作権

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

©2026 GRAS Group, Inc.RSS