ASP.NET

37.C# ASP.NET - 마스터페이지

Godffs 2009. 10. 14. 13:34
반응형
마스터 페이지(*.master) 동적으로 특정 컨트롤 접근
웹 사이트 전체의 레이아웃
ContentPlaceHoder 부분만 변하고 나머지는 레이아웃으로 고정

1. 새 프로젝트에서 웹사이트를 추가합니다. (WebMasterPage)
   - 해당 프로젝트에서 Default.aspx 파일을 삭제해주세요...
2. 추가한 해당 프로젝트에서 새항목 추가 - 마스터페이지 추가
기본적인 테이블을 디자인합니다.
MasterPage.master
기본테이블 다지인

[그림37-1]


해당 프로젝트 - "웹 사용자 정의 컨트롤" 추가 ( Navigator.ascx )
해당 페이지를 불러오기
Navigator.ascx

<div>

   <a href="Default.aspx">HOME</a>

   |

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

</div>


페이지를 추가합니다. 스크린샷을 보고 따라하세요! 중요합니다!
Default.aspx 와 About.aspx 를 같이 방법으로 추가합니다.
Default.aspx

[그림37-2]

[그림37-3]


[그림37-4]

   페레이아웃으로 설정되어져 있습니다. 메인페이지에 적용시

   <asp:Content></asp:Content> 태그 안에서 설정 할 수 있습니다.

   시웹사이트 전체 공통부분만 마스터 페이지로 설정하고,

   시추가/수정은 마스터페이지에서 <asp:ContentPlaceHolder>시컨트롤 추가 후 해주셔야 합니다.


코드

<asp:Content ID="Content1" ContentPlaceHolderID="head" Runat="Server">

</asp:Content>

<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">

<p>여기는 메인 페이지입니다.</p>

</asp:Content>


마스터 페이지로 이동해 추가한 파일을 연결합니다. 코드 추가!!
MasterPage.master

<%@ Master Language="C#" AutoEventWireup="true"

    CodeFile="MasterPage.master.cs" Inherits="MasterPage" %>


<%@ Register src="Navigator.ascx" tagname="Navigator" tagprefix="uc1" %>


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

    <asp:ContentPlaceHolder ID="head" runat="server">

    </asp:ContentPlaceHolder>

    <style type="text/css">

        .style1

        {

            width: 120px;

            height: 187px;

            background-color:Yellow;

        }

        .style2

        {

            height: 187px;

        }

    </style>

</head>

<body>

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

    <div>

        <table border="1" width="100%">

            <tr>

                <td colspan="2">

                    <uc1:Navigator ID="Navigator1" runat="server" />

                </td>

            </tr>

            <tr>

                <td class="style1">

                    <asp:Label ID="lblDisplay" runat="server" Text=""></asp:Label>

                    <br />

                    카테고리

                </td>

                <td class="style2" style="vertical-align:top;">

                    <asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server">

                    </asp:ContentPlaceHolder>

                </td>

            </tr>

            <tr>

                <td colspan="2" align="center">

                    Copyright ASP.NET All right reserved</td>

            </tr>

        </table>

    </div>

    </form>

</body>

</html>


F5눌러서 실행! 결과 확인
결과확인

[그림37-5]



반응형