方法 : ASP.NET のサイト マップ プロバイダを実装する
更新 : 2007 年 11 月
このトピックでは、ASP.NET のサイト マップ プロバイダを構築し、サイト マップ プロバイダを使用できるように ASP.NET アプリケーションを構成する方法について説明します。
関連するトピックを次の表に示します。これらのトピックには、Visual Basic および C# で記述された 2 種類のサイト マップ プロバイダのコード例が含まれています。プロバイダの例の 1 つでは、.NET Framework ODBC 用データ プロバイダを使用して ODBC データ ソースに接続しています。もう 1 つの例では、データ ソースとして Microsoft Access データベースを使用しています。
完全なテキスト ベースのサイト マップ プロバイダを示しています。 |
|
完全な Access ベースのサイト マップ プロバイダを示しています。 |
サイト マップ プロバイダを構築するには
アプリケーションの App_Code ディレクトリにソース コードを配置します。
メモ : アプリケーションの App_Code ディレクトリに既にソース コードがある場合は、ディレクトリ内の既存のコードと同じ言語で記述されたサイト マップ プロバイダのバージョンを追加する必要があります。
プロバイダは、アプリケーションが要求されると ASP.NET によりコンパイルされます。詳細については、「ASP.NET Web サイト内の共有コード フォルダ」を参照してください。
または
サイト マップ プロバイダをライブラリとしてコンパイルして Web アプリケーションの Bin ディレクトリに配置するか、または厳密な名前を指定してグローバル アセンブリ キャッシュ (GAC: global assembly cache) に配置します。例として、コマンド ライン コンパイラを使用してサイト マップ プロバイダの例をコンパイルする方法を次のコマンドで示します。
vbc /out:<example_name>.dll /t:library <example_name>.vb /r:System.Web.dll /r:System.Configuration.dll
csc /out:<example_name>.dll /t:library <example_name>.cs /r:System.Web.dll /r:System.Configuration.dll
ASP.NET アプリケーションでサイト マップ プロバイダを使用するには
Web.config ファイルにサイト マップ プロバイダを追加して、プロバイダを使用できるように Web アプリケーションを構成します。
サイト マップ プロバイダを使用するコントロールを追加します。Web.config ファイルを変更し、プロバイダをコンパイルすると、プロバイダがメモリ内の SiteMap クラスのインスタンスにナビゲーション データを読み込みます。これで、SiteMapPath コントロール、TreeView コントロール、Menu コントロールなどのサイト マップ インフラストラクチャのコンポーネントでナビゲーション データを使用して、ユーザーに対してサイト マップ情報を表示できます。ASP.NET ページでこれら 3 つのコントロールすべてを使用するコード例を次に示します。
<%@ Page Language="VB" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <script runat="server"> </script> <html xmlns="http://www.w3.org/1999/xhtml" > <head id="Head1" runat="server"> <title>Simple Navigation Controls</title> </head> <body> <form id="form1" runat="server"> <div> <h2>Using SiteMapPath</h2> <asp:SiteMapPath ID="SiteMapPath1" Runat="server"> </asp:SiteMapPath> <asp:SiteMapDataSource ID="SiteMapDataSource1" Runat="server" /> <h2>Using TreeView</h2> <asp:TreeView ID="TreeView1" Runat="Server" DataSourceID="SiteMapDataSource1"> </asp:TreeView> <h2>Using Menu</h2> <asp:Menu ID="Menu2" Runat="server" DataSourceID="SiteMapDataSource1"> </asp:Menu> <h2>Using a Horizontal Menu</h2> <asp:Menu ID="Menu1" Runat="server" DataSourceID="SiteMapDataSource1" Orientation="Horizontal" StaticDisplayLevels="2" > </asp:Menu> </div> </form> </body> </html>
<%@ Page Language="C#" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <script runat="server"> </script> <html xmlns="http://www.w3.org/1999/xhtml" > <head runat="server"> <title>Simple Navigation Controls</title> </head> <body> <form id="form1" runat="server"> <div> <h2>Using SiteMapPath</h2> <asp:SiteMapPath ID="SiteMapPath1" Runat="server"> </asp:SiteMapPath> <asp:SiteMapDataSource ID="SiteMapDataSource1" Runat="server" /> <h2>Using TreeView</h2> <asp:TreeView ID="TreeView1" Runat="Server" DataSourceID="SiteMapDataSource1"> </asp:TreeView> <h2>Using Menu</h2> <asp:Menu ID="Menu2" Runat="server" DataSourceID="SiteMapDataSource1"> </asp:Menu> <h2>Using a Horizontal Menu</h2> <asp:Menu ID="Menu1" Runat="server" DataSourceID="SiteMapDataSource1" Orientation="Horizontal" StaticDisplayLevels="2" > </asp:Menu> </div> </form> </body> </html>