CAFE

ASP.NET

[21기 강민영] ContentPlaceHolder 클래스

작성자21기 강민영|작성시간11.04.15|조회수963 목록 댓글 2

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

 

다음검색
현재 게시글 추가 기능 열기

댓글

댓글 리스트
  • 작성자21기 정연규 | 작성시간 11.04.17 On메소드를 쓰면 "[안내]태그제한으로등록되지않습니다" 이 오류 메시지가 꼭 뜨나보내요~다음에서 허용하지 않는 듯..
  • 작성자24기 김재훈 | 작성시간 12.08.30 선배님께서 나중에 한번 방문하셔서 그림 파일로 올려주시는 것도 나쁘지 않을 걸로 보입니다. ^^
댓글 전체보기
맨위로

카페 검색

카페 검색어 입력폼