|
ASP.NET ContentPlaceHolder |
|
작성자 : 강민영 | |
작성일 : 2011. 4.15 | |
제목 : ContentPlaceHolder |
1. ContentPlaceHolder
ASP.NET 마스터 페이지의 콘텐츠 영역을 정의하고, 콘텐츠 페이지에 있는 관련 Content컨트롤에서 모든 텍스트, 태그 및 서버컨트롤을 렌더링한다.
Content컨트롤은 해당 ContentPlaceHolderID속성을 사용하는 ContentPlaceHolder와 연결된다.
ContentPlaceHolderID 속성을 마스터페이지에 있는 관련 ContentPlaceHolder 컨트롤의 ID속성 값으로 설정한다. 하나의 마스터 페이지에서 여러 ContentPlaceHolder를 선언할 수 있다. 하나의 콘텐츠 페이지에서는 하나의 Content컨트롤만 마스터 페이지에 ContentPlaceHolder에 대한 콘텐츠를 제공할 수 있다.
그러나 마스터 페이지를 사용하는 각 콘텐츠 페이지에서는 ContentPlaceHolder와 연결된 별도의 Content컨트롤을 사용할 수 있다. 예를 들어, 마스터 페이지에 페이지 제목에 대한 ContentPlaceHolder를 정의할 수 있다. 마스터 페이지를 사용하는 각 콘텐츠 페이지에는 페이지 제목의 텍스트 및 태그를 제공하는 Content컨트롤을 추가할 수 있다.
ContentPlaceHolder 컨트롤 태그 내부에 있는 기본 콘텐츠를 지정할 수 있지만 이 콘텐츠는 연결된 콘텐츠 페이지의 콘텐츠로 대체된다.
선언 구문
<asp: ContentPlaceHolder EnableViewState="True|False" ID="string" OnDataBinding="DataBinding event handler" OnDisposed="Disposed event handler" OnInit="Init event handler"
[안내]태그제한으로등록되지않습니다-xx[안내]태그제한으로등록되지않습니다-xxOnLoad="Load event handler" OnPreRender="PreRender event handler" xxxxOnUnload="Unload event handler" runat="server" Visible="True|False" > <!-- child controls --> </asp:ContentPlaceHolder> |
- 마스터파일
ContentPlaceHolder 컨트롤을 사용하여 마스터 페이지의 콘텐츠 영역을 정의하는 방법을 보여준다. ContentPlaceHolder컨트롤을 사용하여 콘텐츠 영역을 정의하는 마스터 페이지이다.
<%@ Master Language="C#" AutoEventWireup="true" CodeFile="MasterPage.master.cs" Inherits="MasterPage" %>
<!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 runat="server"> <title>MasterPage Ex</title> <asp:ContentPlaceHolder id="head" runat="server"> </asp:ContentPlaceHolder>
</head> <body> <form id="form1" runat="server"> <div> <asp:ContentPlaceHolder id="ContentPlaceHolder1" runat="server">
</asp:ContentPlaceHolder> </div> </form> </body> </html>
|
- 콘텐츠파일
Content컨트롤 템플릿에 정의된 텍스트, 태그 및 모든 서버 컨트롤은 마스터 페이지의 ContentPlaceHolder에 렌더링된다.
<%@ Page Title="" Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true" CodeFile="ChildContent.aspx.cs" Inherits="ChildContent" %>
<asp:Content ID="Content1" ContentPlaceHolderID="head" Runat="Server"> </asp:Content> <asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server"> ChildContent </asp:Content>
|
< 결과 >
참고:
msdn :
http://msdn.microsoft.com/ko-kr/library/system.web.ui.webcontrols.contentplaceholder.aspx
첫댓글 On메소드를 쓰면 "[안내]태그제한으로등록되지않습니다" 이 오류 메시지가 꼭 뜨나보내요~다음에서 허용하지 않는 듯..
선배님께서 나중에 한번 방문하셔서 그림 파일로 올려주시는 것도 나쁘지 않을 걸로 보입니다. ^^