ASP.NET Web Forms - ナビゲーション


ASP.NET には組み込みのナビゲーションコントロールがあります。


サイトナビゲーション

大規模なWebサイトのメニューを維持することは困難で時間がかかります。

ASP.NET では、メニューはファイルに保存できるため、簡単に維持できます。このファイルは通常、次の名前です。web.sitemap、Webサイトのルートディレクトリに配置されます。

さらに、ASP.NET には3つの新しいナビゲーションコントロールがあります。

  • Dynamic menus
  • TreeViews
  • Site Map Path

サイトマップファイル

このチュートリアルでは、次のサイトマップファイルを使用します。

<?xml version="1.0" encoding="ISO-8859-1" ?>
<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を定義する属性があります。

lamp注:サイトマップファイルはサイトのルートディレクトリに置く必要があり、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> コントロールは、多レベルのナビゲーションメニューを表示できます。

このメニューは、枝と葉のある木のように見え、+ または - 記号で開いたり閉じたりできます。

コード例:

<asp:SiteMapDataSource id="nav1" runat="server" />

<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 ファイルを使用します。

lampヒント:SiteMapPath が正しく表示されない場合、web.sitemap ファイルに URL エラー(入力ミス)がある可能性が高いです。

コード例:

<form runat="server">
<asp:SiteMapPath runat="server" />
</form>

上記の例の<asp:SiteMapPath>コントロールは、サーバーがナビゲーションメニューを作成するためのプレースホルダーです。

その他の拡張