ASP.NET 2.0 - ナビゲーション(Navigation)

ASP.NET 2.0 にはビルドインのナビゲーションコントロールがあります。

ウェブサイトナビゲーション

大規模なサイトのナビゲーションメニューのメンテナンスは難しく、時間がかかります。

ASP.NET 2.0 では、メニューをファイルに保存することができ、これによりメンテナンスがより簡単になります。このファイルの名前は通常、 web.sitemap、サイトのルートディレクトリに保存されています。

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

  • Dynamic menus
  • TreeViews
  • Site Map パス

Sitemap ファイル

このチュートリアルでは以下の sitemap ファイルを使用しています(サイトマップ):

<?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>

sitemap ファイルの作成規則:

  • XML ファイルは内容を囲む <siteMap> タグを含まなければなりません。
  • <siteMap> タグは 1 つの <siteMapNode> サブノード("home" ページ)しか持てません。
  • 各 <siteMapNode> は複数のサブノード(ウェブページ)を持つことができます。
  • 各 <siteMapNode> はページタイトルと URL を定義する属性を持ちます。

注:sitemap ファイルはサイトのルートディレクトリに保存されなければなりません。URL 属性はそのルートディレクトリに対して相対的でなければなりません。

Dynamic Menu

<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> コントロールはデフォルトの sitemap ファイルに自動的に接続されます(web.sitemap)。

ここをクリックして Menu の DEMO を表示

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> コントロールはデフォルトの sitemap ファイルに自動的に接続されます(web.sitemap)。

ここをクリックして TreeView の DEMO を表示

SiteMapPath

SiteMapPath コントロールは、現在のページへの指針(ナビゲーションパス)を表示できます。このパスは、上位ページへのクリック可能なリンクとして表示されます。

TreeView と Menu コントロールとは異なり、SiteMapPath コントロール使用しない SiteMapDataSource。SiteMapPath コントロールはデフォルトで web.sitemap ファイルを使用します。

ヒント:SiteMapPath が正しく表示されていない場合、web.sitemap ファイルに URL エラーがある可能性があります。

コード例:

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

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

ここをクリックして SiteMapPath の DEMO を表示