Asp.Net 모판 페이지 에 대한 지식
모판 페이지 의 사용 은 일반 페이지 와 유사 하 며 파일 이나 도형,모든 HTML 컨트롤 과 웹 컨트롤,백 엔 드 코드 등 을 설치 할 수 있 습 니 다.모판 페이지 의 확장 자 는.master 로 끝 나 며 브 라 우 저 에서 직접 볼 수 없습니다.모판 페이지 는 다른 페이지 에서 사용 해 야 표시 할 수 있 습 니 다.
일반 페이지 와 마찬가지 로 시각 화 된 디자인 도 가능 하고 사후 코드 도 작성 할 수 있 습 니 다.일반 페이지 와 달리 Content Place Holder 컨트롤 을 포함 할 수 있 습 니 다.Content Place Holder 컨트롤 은 콘 텐 츠 페이지 를 표시 할 수 있 는 영역 입 니 다.
모판 페이지 는 하나의 페이지 템 플 릿 일 뿐 단독 모판 페이지 는 사용자 가 접근 할 수 없습니다.단독 콘 텐 츠 페이지 도 사용 할 수 없습니다.모판 페이지 와 내용 페이지 는 엄격 한 대응 관 계 를 가지 고 있다.모판 페이지 에 몇 개의 Content Place Holder 컨트롤 이 포함 되 어 있 으 면 콘 텐 츠 페이지 에 도 해당 하 는 Content 컨트롤 을 설정 해 야 합 니 다.클 라 이언 트 브 라 우 저가 서버 에 어떤 콘 텐 츠 페이지 를 탐색 하 라 고 요청 할 때 엔진 은 콘 텐 츠 페이지 와 모판 페이지 의 코드 를 동시에 실행 하고 최종 결 과 를 클 라 이언 트 브 라 우 저 에 보 냅 니 다.
모판 페이지 는 다음 과 같은 장점 을 가지 고 있다.
4.567917.모판 페이지 를 사용 하면 페이지 의 일반적인 기능 을 집중 적 으로 처리 하여 한 위치 에서 만 업데이트 할 수 있 습 니 다4.567917.모판 페이지 를 사용 하면 컨트롤 과 코드 를 편리 하 게 만 들 고 결 과 를 한 페이지 에 적용 할 수 있 습 니 다.예 를 들 어 모판 페이지 에 컨트롤 을 사용 하여 모든 페이지 에 적용 되 는 메뉴 를 만 들 수 있 습 니 다
<%@ Master Language=”C#” AutoEventWireup=”true” CodeFile=”MasterPage.master.cs” Inherits=”MasterPage” %>
……
<form id=”form1″ runat=”server”>
<div>
<asp:contentplaceholder id=”ContentPlaceHolder1″ runat=”server”>
</asp:contentplaceholder>
</div>
</form>
……
주의:1.여기 서 설명 표시 자 는"<%@Master...%>"입 니 다.
2.내부 에
내용 페이지(확장 자 는.aspx)
내용 페이지 를 만 들 때'새 항목 추가'대화 상자 에서'모판 페이지 선택'체크 상 자 를 선택 하 십시오.이렇게 만들어 진 페이지 는 콘 텐 츠 페이지 입 니 다.콘 텐 츠 페이지 는 표시 할 때 모판 의 내용 을 워 터 마크 로 옅 게 표시 하고 모판 페이지 의 ContentPlace Holder 컨트롤 영역 은 콘 텐 츠 페이지 의 Content 컨트롤 로 바 꿉 니 다.프로그래머 는 여기 서 콘 텐 츠 페이지 의 내용 을 작성 할 수 있 습 니 다.
코드 는 다음 과 같 습 니 다:
<%@ Page Language=”C#” MasterPageFile=”~/MasterPage/MP.master” AutoEventWireup=”true” CodeFile=”Show1.aspx.cs” Inherits=”MasterPage_Show1″ Title=”Untitled Page” %>
<asp:Content ID=”Content1″ ContentPlaceHolderID=”ContentPlaceHolder1″ Runat=”Server”>
</asp:Content>
주의:1.여기 성명 인디케이터 에 MasterPageFile='~/MasterPage/MP.master'가 하나 더 있 습 니 다.이 항목 은 내용 페이지 를 만 들 때'모판 페이지 선택'체크 상자 의 선택 상황 에 따라 생 성 됩 니 다.이 페이지 는 내용 페이지 이 고 이 내용 페이지 의 모판 페이지 가 어느 페이지 인지 밝 혔 다.
2."
1.모판 페이지 에 배경 코드 를 작성 하고 모판 페이지 의 컨트롤 에 접근 합 니 다.
일반적인 aspx 페이지 와 마찬가지 로 단 추 를 두 번 누 르 면 모판 페이지 의 코드 를 작성 할 수 있 습 니 다.
2.빈 페이지 에서 배경 코드 를 작성 하고 내용 페이지 의 컨트롤 에 접근 합 니 다.
일반적인 aspx 페이지 와 마찬가지 로 단 추 를 두 번 누 르 면 모판 페이지 의 코드 를 작성 할 수 있 습 니 다.
3.내용 페이지 에서 코드 를 작성 하여 모판 페이지 에 접근 하 는 컨트롤:
콘 텐 츠 페이지 에 마스터 대상 이 있 습 니 다.마스터 페이지 형식 으로 현재 콘 텐 츠 페이지 의 모판 페이지 를 대표 합 니 다.이 대상 의 FindControl 방법 을 통 해 모판 면 의 컨트롤 을 찾 을 수 있 습 니 다.그러면 내용 페이지 에서 모판 페이지 의 컨트롤 을 조작 할 수 있 습 니 다.
TextBox txt = (TextBox)((MasterPage)Master).FindControl(“txtMaster”);
txt.Text = this.txtContent1.Text; ;
4.내용 페이지 에서 코드 를 작성 하여 모판 페이지 에 접근 하 는 속성 과 방법:마스터 대상 을 통 해 접근 할 수 있 습 니 다.다만 여기 서 마스터 대상 을 구체 적 인 모판 페이지 형식 으로 바 꾼 다음 에 모판 페이지 의 속성 과 방법 을 호출 해 야 합 니 다.
여기 서 설명 하고 자 하 는 것 은 모판 페이지 에서 내용 페이지 에 호출 될 속성 과 방법 은 Public 에서 수정 해 야 한 다 는 것 이다.그렇지 않 으 면 옮 길 수 없습니다.
모판 페이지 에 다음 속성 과 방법 이 있다 고 가정 합 니 다.
public string TextValue
{
get
{
return this.txtMaster.Text;
}
set
{
this.txtMaster.Text = value;
}
}
public void show(string str)
{
txtMaster.Text = str;
}
내용 페이지 에서 다음 세대 의 코드 를 통 해 모판 페이지 의 방법 을 호출 할 수 있 습 니 다.
((MasterPage_MP)Master).show(this.txtContent1.Text);
((MasterPage_MP)Master).TextValue = this.txtContent1.Text;
5.모판 페이지 에서 내용 페이지 에 접근 하 는 컨트롤:모판 페이지 에 서 는 Content Place Holder 컨트롤 에서 FindControl 방법 을 호출 하여 컨트롤 을 얻 은 다음 컨트롤 을 조작 할 수 있 습 니 다.
((TextBox)this.ContentPlaceHolder1.FindControl(“txtContent1″)).Text = this.txtMaster.Text;
6.모판 페이지 에서 내용 페이지 에 접근 하 는 방법 과 속성:모판 페이지 에서 하위 페이지 의 속성 과 방법 을 호출 하 는 것 은 좀 어렵 습 니 다.이전 단계 처럼 FindControl 을 통 해 방법 과 속성 을 찾 을 수 없 기 때 문 입 니 다.
그래서 우 리 는 모판 면 의 성명 인디케이터 에 다음 코드 를 추가 하고 싶 습 니 다.
<%@ Reference Page=”~/MasterPage/Show1.aspx” %>
실행 중 오류 가 발생 했 습 니 다.잘못된 내용 은'순환 참조 가 불가능 합 니 다'입 니 다.이것 은 기본적으로 하위 페이지 에서 모판 페이지 를 인 용 했 기 때문에 모판 페이지 에서 하위 페이지 를 인용 할 수 없습니다.나 는 인터넷 에서 도 더 좋 은 해결 방법 을 찾 지 못 했 지만,이것 은 우리 로 하여 금 C\#의'반사'를 떠 올 리 게 한다.이것 은 우리 로 하여 금 페이지 대상 을 동적 으로 얻 게 하고,그것 의 속성 과 방법 을 호출 할 수 있 게 한다.
코드 는 다음 과 같 습 니 다:
Type t = this.ContentPlaceHolder1.Page.GetType();
PropertyInfo pi = t.GetProperty(“ContentValue”); // ContentValue
pi.SetValue(this.ContentPlaceHolder1.Page,this.txtMaster.Text,null); //
MethodInfo mi = t.GetMethod(“SetValue”); // SetValue()
object[] os = new object[1]; //
os[0] = txtMaster.Text;
mi.Invoke(this.ContentPlaceHolder1.Page, os); // SetValue
7.여러 개의 내용 페이지 가 모판 면 을 사용 하 는 상황 에서 모판 페이지 에서 서로 다른 내용 페이지 에 따라 서로 다른 조작 을 실현 한다.모판 페이지 에 여러 개의 다른 내용 페이지 를 추가 할 수 있 지만 디자인 기간 에 우 리 는 현재 실행 중인 내용 페이지 를 알 수 없습니다.따라서 현재 실행 중인 하위 페이지 가 어떤 하위 페이지 인지 분기 로 판단 하여 다른 작업 을 수행 할 수 있 습 니 다.이곳 에 도 반사 지식 이 사용 되 었 다.
코드 는 다음 과 같 습 니 다:
string s = this.ContentPlaceHolder1.Page.GetType().ToString(); //
if (s == “ASP.default17_aspx”) //
{
((TextBox)this.ContentPlaceHolder1.FindControl(“TextBox2″)).Text = “MastPage”;
}
else if (s == “ASP.default18_aspx”)
{
((TextBox)this.ContentPlaceHolder1.FindControl(“TextBox2″)).Text = “Hello MastPage”;
}
8.모판 과 내용 페이지 에서 JS 코드 의 조작모판 페이지 나 콘 텐 츠 페이지 의 컨트롤 이 실행 되면 자동 으로 ID 가 생 성 됩 니 다.예 를 들 어 텍스트 상자 의 ID 는 txtContent 1 이 고 실행 되면 ID 는 자동 으로 ctl 00 로 변 합 니 다.ContentPlaceHolder2_txtContent 1,name 속성 은 ctl 00$ContentPlace Holder 2$txtContent 1 로 변 경 됩 니 다.
JS 코드 에서 저 희 는 document.getElement ById()방법 으로 id 에 따라 컨트롤 대상 을 얻 을 때 ctl 00 을 사용 해 야 합 니 다.ContentPlaceHolder2_txtContent 1 이라는 ID 이름 입 니 다.그렇지 않 으 면'대상 을 찾 지 못 했 습 니 다'라 는 이상 이 발생 할 수 있 습 니 다.
모판 페이지 운영 체제
모판 페이지 는 하나의 페이지 템 플 릿 일 뿐 단독 모판 페이지 는 사용자 가 접근 할 수 없습니다.단독 콘 텐 츠 페이지 도 사용 할 수 없습니다.모판 페이지 와 내용 페이지 는 엄격 한 대응 관 계 를 가지 고 있다.모판 페이지 에 몇 개의 Content Place Holder 컨트롤 이 포함 되 어 있 으 면 콘 텐 츠 페이지 에 도 해당 하 는 Content 컨트롤 을 설정 해 야 합 니 다.클 라 이언 트 브 라 우 저가 서버 에 어떤 콘 텐 츠 페이지 를 탐색 하 라 고 요청 할 때 ASP.NET 엔진 은 콘 텐 츠 페이지 와 모판 페이지 의 코드 를 동시에 실행 하고 최종 결 과 를 클 라 이언 트 브 라 우 저 에 보 냅 니 다.
모판 페이지 와 내용 페이지 의 운행 과정 은 다음 과 같은 5 단계 로 요약 할 수 있다.
(1)사용 자 는 내용 페이지 의 URL 을 입력 하여 특정한 페이지 를 요청 합 니 다.
(2)내용 페이지 를 가 져 온 후@Page 명령 을 읽 습 니 다.이 명령 이 모판 페이지 를 인용 하면 모판 페이지 도 읽 습 니 다.이 두 페이지 를 처음 요청 했다 면 두 페이지 모두 컴 파일 해 야 한다.
(3)모판 페이지 를 내용 페이지 의 컨트롤 트 리 에 통합 합 니 다.
(4)각 Content 컨트롤 의 내용 을 모판 페이지 에 해당 하 는 ContentPlace Holder 컨트롤 에 통합 합 니 다.
(5)결과 페이지 를 나타 낸다.
모판 페이지 와 내용 페이지 이벤트 순서
(1)모판 페이지 의 컨트롤 Init 이벤트;
(2)내용 페이지 의 콘 텐 츠 컨트롤 Init 이벤트;
(3)모판 페이지 Init 이벤트;
(4)내용 페이지 Init 이벤트;
(5)내용 페이지 로드 이벤트;
(6)모판 페이지 로드 이벤트;
(7)내용 페이지 의 콘 텐 츠 컨트롤 로드 이벤트;
(8)내용 페이지 PreRender 이벤트;
(9)모판 페이지 PreRender 이벤트;
(10)모판 페이지 컨트롤 PreRender 이벤트.
(11)내용 페이지 의 Content 컨트롤 PreRender 이벤트.
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
easyui 내 보 내기 excel 다운로드 상 자 를 꺼 낼 수 없 는 해결 방법이전에 ajax 로 만 든 코드 는 다음 과 같 습 니 다 (ActionUrl 은 일반 처리 프로그램 ashx 의 경로 입 니 다). 다운로드 상 자 를 팝 업 할 수 없습니다. 직접 브 라 우 저 주소 표시 줄 에...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.