ASP.NET Web Forms - ナビゲーション
ASP.NET には組み込みのナビゲーションコントロールがあります。
サイトナビゲーション
大規模なWebサイトのメニューを維持することは困難で時間がかかります。
ASP.NET では、メニューはファイルに保存できるため、簡単に維持できます。このファイルは通常、次の名前です。web.sitemap、Webサイトのルートディレクトリに配置されます。
さらに、ASP.NET には3つの新しいナビゲーションコントロールがあります。
- Dynamic menus
- TreeViews
- Site Map Path
サイトマップファイル
このチュートリアルでは、次のサイトマップファイルを使用します。
<siteMap>
<siteMapNode title="Home" url="/aspnet/w3home.aspx">
<siteMapNode title="Services" url="/aspnet/w3services.aspx">
<siteMapNode title="Training" url="/aspnet/w3training.aspx"/>
<siteMapNode title="Support" url="/aspnet/w3support.aspx"/>
</siteMapNode>
</siteMapNode>
</siteMap>
サイトマップファイルを作成するためのルール:
- XMLファイルには、コンテンツを囲む <siteMap> タグを含める必要があります。
- <siteMap> タグは、子ノード( "home" ページ)を1つだけ持つことができます。
- 各 <siteMapNode> は複数の子ノード(Webページ)を持つことができます。
- 各 <siteMapNode> には、ページのタイトルとURLを定義する属性があります。
注:サイトマップファイルはサイトのルートディレクトリに置く必要があり、URL属性はそのルートディレクトリを基準にしている必要があります。
動的メニュー
<asp:Menu> コントロールは、標準のサイトナビゲーションメニューを表示できます。
コード例:
<form runat="server">
<asp:Menu runat="server" DataSourceId="nav1" />
</form>
上記の例の<asp:Menu>コントロールは、サーバーがナビゲーションメニューを作成するためのプレースホルダーです。
コントロールのデータソースは、DataSourceId属性によって定義されます。id="nav1"データソースを接続します。<asp:SiteMapDataSource>コントロールに。
<asp:SiteMapDataSource>コントロールは自動的にデフォルトのサイトマップファイル(web.sitemap)。
TreeView
<asp:TreeView> コントロールは、多レベルのナビゲーションメニューを表示できます。
このメニューは、枝と葉のある木のように見え、+ または - 記号で開いたり閉じたりできます。
コード例:
<form runat="server">
<asp:TreeView runat="server" DataSourceId="nav1" />
</form>
上記の例の<asp:TreeView>コントロールは、サーバーがナビゲーションメニューを作成するためのプレースホルダーです。
コントロールのデータソースは、DataSourceId属性によって定義されます。id="nav1"データソースを接続します。<asp:SiteMapDataSource>コントロールに。
<asp:SiteMapDataSource>コントロールは自動的にデフォルトのサイトマップファイル(web.sitemap)。
SiteMapPath
SiteMapPath コントロールは、現在のページへのポインタ(ナビゲーションパス)を表示できます。このパスは、上位ページへのクリック可能なリンクとして表示されます。
TreeView や Menu コントロールとは異なり、SiteMapPath コントロールは使用しませんSiteMapDataSource。SiteMapPath コントロールは既定で web.sitemap ファイルを使用します。
ヒント:SiteMapPath が正しく表示されない場合、web.sitemap ファイルに URL エラー(入力ミス)がある可能性が高いです。
コード例:
<asp:SiteMapPath runat="server" />
</form>
上記の例の<asp:SiteMapPath>コントロールは、サーバーがナビゲーションメニューを作成するためのプレースホルダーです。
その他の拡張