Web フォームのナビゲーション
ASP.NET にはナビゲーション コントロールが組み込まれています。
ウェブサイト ナビゲーション
大規模なウェブサイトのメニューを維持するのは難しく、時間がかかります。
ASP.NET では、メニューをファイルに保存できるため、メンテナンスが容易になります。このファイルは通常、web.sitemapという名前で、Web サイトのルート ディレクトリに保存されます。
さらに、ASP.NET には 3 つのコア ナビゲーション コントロールがあります:
- ダイナミック メニュー
- TreeViews
- サイト マップ パス
サイトマップ ファイル
このチュートリアルでは、次のサイトマップ ファイルを使用します。 ?xml バージョン="1.0" エンコーディング="ISO-8859-1" ?>
<サイトマップ><siteMapNode title="トレーニング" url="/aspnet/w3training.aspx"/>
<siteMapNode title="サポート" url="/aspnet/w3support.aspx"/>
</siteMapNode>
</siteMapNode>
子ノード (「ホーム」ページ)
各 <siteMapNode> には複数の子ノード (Web ページ) を含めることができます
- 注意: sitemap ファイルはサイトのルートに配置する必要があり、URL プロパティはそのルートに相対的である必要があります。
- 動的メニュー
- <asp:Menu> コントロールは、標準のサイト ナビゲーション メニューを表示します。
コード例:
<asp:SiteMapDataSource id="nav1" runat="server" /><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 エラー (印刷エラー) が原因である可能性が高くなります。
コード例:
</form>
< asp:SiteMapPath> コントロールは、サーバーがナビゲーション メニューを作成するためのプレースホルダーです。