Asp.Net 모판 페이지 에 대한 지식

7957 단어 Asp.Net모판
Asp.Net 모판 페이지 지식
모판 페이지 의 사용 은 일반 페이지 와 유사 하 며 파일 이나 도형,모든 HTML 컨트롤 과 웹 컨트롤,백 엔 드 코드 등 을 설치 할 수 있 습 니 다.모판 페이지 의 확장 자 는.master 로 끝 나 며 브 라 우 저 에서 직접 볼 수 없습니다.모판 페이지 는 다른 페이지 에서 사용 해 야 표시 할 수 있 습 니 다.
일반 페이지 와 마찬가지 로 시각 화 된 디자인 도 가능 하고 사후 코드 도 작성 할 수 있 습 니 다.일반 페이지 와 달리 Content Place Holder 컨트롤 을 포함 할 수 있 습 니 다.Content Place Holder 컨트롤 은 콘 텐 츠 페이지 를 표시 할 수 있 는 영역 입 니 다.
모판 페이지 는 하나의 페이지 템 플 릿 일 뿐 단독 모판 페이지 는 사용자 가 접근 할 수 없습니다.단독 콘 텐 츠 페이지 도 사용 할 수 없습니다.모판 페이지 와 내용 페이지 는 엄격 한 대응 관 계 를 가지 고 있다.모판 페이지 에 몇 개의 Content Place Holder 컨트롤 이 포함 되 어 있 으 면 콘 텐 츠 페이지 에 도 해당 하 는 Content 컨트롤 을 설정 해 야 합 니 다.클 라 이언 트 브 라 우 저가 서버 에 어떤 콘 텐 츠 페이지 를 탐색 하 라 고 요청 할 때 엔진 은 콘 텐 츠 페이지 와 모판 페이지 의 코드 를 동시에 실행 하고 최종 결 과 를 클 라 이언 트 브 라 우 저 에 보 냅 니 다.
모판 페이지 는 다음 과 같은 장점 을 가지 고 있다.
4.567917.모판 페이지 를 사용 하면 페이지 의 일반적인 기능 을 집중 적 으로 처리 하여 한 위치 에서 만 업데이트 할 수 있 습 니 다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 이벤트.
    이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

    좋은 웹페이지 즐겨찾기