방법: ASP.NET 사이트 맵 공급자 구현
업데이트: 2007년 11월
이 항목에서는 ASP.NET 사이트 맵 공급자를 만들고 ASP.NET 응용 프로그램에서 사이트 맵 공급자를 사용하도록 구성하는 방법을 설명합니다.
다음 표에서는 Visual Basic 및 C#으로 작성된 두 개의 예제 사이트 맵 공급자에 대한 코드가 들어 있는 부록 항목을 보여 줍니다. 예제 공급자 중 하나에서는 .NET Framework Data Provider for ODBC를 사용하여 ODBC 데이터 소스에 연결합니다. 다른 예제에서는 Microsoft Access 데이터베이스를 데이터 소스로 사용합니다.
텍스트 기반의 사이트 맵 공급자 전체를 보여 줍니다. |
|
Access 기반의 사이트 맵 공급자 전체를 보여 줍니다. |
사이트 맵 공급자를 빌드하려면
소스 코드를 응용 프로그램의 App_Code 디렉터리에 배치합니다.
참고: 응용 프로그램의 App_Code 디렉터리에 소스 코드가 이미 있으면 디렉터리의 기존 코드와 동일한 언어로 작성된 사이트 맵 공급자 버전을 추가해야 합니다.
이 공급자는 해당 응용 프로그램이 필요할 때 ASP.NET에서 컴파일됩니다. 자세한 내용은 ASP.NET 웹 사이트의 공유 코드 폴더를 참조하십시오.
-- 또는 --
사이트 맵 공급자를 라이브러리로 컴파일한 다음 웹 응용 프로그램의 Bin 디렉터리에 배치하거나, 강력한 이름으로 지정한 다음 GAC(전역 어셈블리 캐시)에 배치합니다. 예를 들어, 다음 명령에서는 명령줄 컴파일러를 사용하여 예제 사이트 맵 공급자를 컴파일하는 방법을 보여 줍니다.
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.config 파일을 변경하고 공급자를 컴파일하고 나면 공급자가 탐색 데이터를 메모리에 있는 SiteMap 클래스의 인스턴스로 로드합니다. 이제 SiteMapPath, TreeView 및 Menu 컨트롤 같은 사이트 맵 인프라의 구성 요소에서 탐색 데이터를 사용하여 사용자에게 사이트 맵 정보를 표시할 수 있습니다. 다음 예제 코드에서는 ASP.NET 페이지에 이 세 개의 컨트롤을 모두 사용합니다.
<%@ Page Language="VB" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <script > </script> <html xmlns="http://www.w3.org/1999/xhtml" > <head id="Head1" > <title>Simple Navigation Controls</title> </head> <body> <form id="form1" > <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 > </script> <html xmlns="http://www.w3.org/1999/xhtml" > <head > <title>Simple Navigation Controls</title> </head> <body> <form id="form1" > <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>