.NET프로그래밍/ASP.NET 3.5 SP1

Web.sitemap (사이트맵패스 컨트롤) - 빵 조각(Bread Crumb)

holland14 2009. 10. 15. 10:43

"Web.sitemap"에 코드를 작성해서 "계층형으로 구성"하여 실행시에 웹 페이지의 "FrmSiteMap"에 출력한다.

"FrmSiteMap"컨트롤에서 "Web.sitemap"파일에 작성된 (코드)정보를 읽어서 웹 페이지에서 출력한다.




--> 도구 상자의 '탐색'컨트롤에 있는 "SiteMapPath"컨트롤.






--> 아래그림과 같이 "WebNavigationControl"프로젝트(폴더)에, "새 항목 추가"로 "사이트 맵"형식의 "Web.sitemap"파일을 만든다.




--> 아래그림과 같이 '솔루션 탐색기'에 "Web.sitemap"파일이 생성되었다.




--> "Web.sitemap"에 코드를 작성해서 "계층형으로 구성"하여 실행시에 웹 페이지의 "FrmSiteMap"에 출력하도록 한다.



==> 작성한 [Web.sitemap] 소스코드


<?xml version="1.0" encoding="utf-8" ?>

<siteMap xmlns="http://schemas.microsoft.com/AspNet/SiteMap-File-1.0" >

  <siteMapNode url="Default.aspx" title="(Home)" 

    description="처음으로">

 

      <siteMapNode url="FrmSiteMap.aspx" title="사이트맵패스" description="설명"></siteMapNode>

   

   

    <siteMapNode url="Introduce.aspx" title="사이트 소개(Introduce)" 

      description="사이트 소개(Introduct)" />

    <siteMapNode url="Lecture.aspx" title="강의실(Lecture)" 

      description="강의실(Lecture)">

      <siteMapNode url="Week.aspx" title="이번 주 강의 내용" 

        description="이번 주 강의 내용" />

      <siteMapNode url="Report.aspx" title="과제물 및 시험 제출" 

        description="과제물 및 시험 제출" />

    </siteMapNode>

    <siteMapNode url="Blog.aspx" title="블로그(Blog)" 

      description="블로그(Blog)" />

    <siteMapNode url="Forum.aspx" title="포럼(Forum)" 

      description="포럼(Forum)" />

    <siteMapNode url="Board.aspx" title="게시판(Board)" 

      description="게시판(Board)">

      <siteMapNode url="FreeBoard.aspx" title="자유게시판" 

        description="자유게시판" />

      <siteMapNode url="GuestBook.aspx" title="방명록" 

        description="방명록" />

    </siteMapNode>

  </siteMapNode>

</siteMap>





작성한 "Web.sitemap"의 코드를 "SiteMapPath"컨트롤에 출력하기 위해서 "WebNavigationControl"프로젝트(폴더)에, "새 항목 추가"로 "웹 폼(Web Form)"형식의 "FrmSiteMap.aspx"파일을 만들고 "SiteMapPath"컨트롤을 "<div>태그"에 "드래그&드롭"하거나 또다른 방법으로 아래와 같이 "FrmSiteMap.aspx"에 소스코드로 작성한다.




==> [FrmSiteMap.aspx] 소스코드 및 디자인



<%@ Page Language="C#" AutoEventWireup="true" CodeFile="FrmSiteMap.aspx.cs" Inherits="FrmSiteMap" %>

 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

 

<html xmlns="http://www.w3.org/1999/xhtml">

<head id="Head1" runat="server">

    <title></title>

</head>

<body>

    <form id="form1" runat="server">

    <div>

   

        <asp:SiteMapPath ID="SiteMapPath1" runat="server">

        </asp:SiteMapPath>

   

    </div>

    </form>

</body>

</html>

 











==> [Default.aspx] 소스코드 및 디자인


<%@ Page Language="C#" AutoEventWireup="true"  CodeFile="Default.aspx.cs" Inherits="_Default" %>

 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

 

<html xmlns="http://www.w3.org/1999/xhtml" >

<head id="Head1" runat="server">

    <title>탐색(Navigation) 컨트롤</title>

</head>

<body>

    <form id="form1" runat="server">

      <a href="Introduce.aspx">Introduce.aspx</a><br />

      <a href="FrmMenu.aspx">FrmMenu.aspx</a><br />

      <a href="FrmTreeView.aspx">FrmTreeView.aspx</a>

    </form>

</body>

</html>

 













[실행결과]

--> "FrmSiteMap.aspx"에서 "브라우저에서 보기"로 실행한 화면.





--> "Default.aspx"에서 "브라우저에서 보기"로 실행한 화면.





--> 위의 "FrmSiteMap.aspx"그림에서 링크가 걸려있는 "홈(Home)"텍스트를 누르면 아래그림과 같이 "Default.aspx"페이지로 넘어간다.





--> 위의 "Default.aspx페이지"그림에서 링크가 걸려있는 "FrmMenu.aspx"텍스트를 누르면 아래그림과 같이 "FrmMenu.aspx"페이지로 넘어간다.





--> 위의 "Default.aspx페이지"그림에서 링크가 걸려있는 "FrmTreeView.aspx"텍스트를 누르면 아래그림과 같이 "FrmTreeView.aspx"페이지로 넘어간다.




참고로, 여기서는 "웹 폼(Web Form)"형태의 파일인 "Introduce.aspx"파일은 따로 만들지 않았기 때문에, "Default.aspx"페이지에서 링크가 걸려있는 "Introduce.aspx"텍스트를 클릭하여 실행하는 과정을 하지 않았다.