11 마스터페이지 마스터 페이지 들어가기 마스터 페이지 사용하기

Slides:



Advertisements
Similar presentations
1/29 키보드로 직접 입력할 수 없는 다양한 기호와 한자를 입력하는 방법을 알아 보자. 또한 블록으로 영역을 설정하는 여러 가지 방법에 대해 살펴본 후 블록 으로 설정된 내용을 복사하여 붙여넣거나, 잘라내고 이동하는 방법에 대해서 도 알아보자. 02_ 문서의 입력과 편집.
Advertisements

1 Lotte EDI 환경 설정 매뉴얼 LLTTTTEE Always with You OO.
2. 미디어 쿼리 : 다양한 뷰포트의 지원 김은옥 1 학습목표 : 여기서는 미디어 쿼리 작성방법, 뷰포트 지정 방법 등 을 살펴본다.
목 차 C# 언어 특징 .NET 프레임워크 C# 콘솔 프로그램 C# 윈도우 프로그램 실습 프로그래밍세미나 2.
ㅎㅎ C++ 프로그래밍의 첫 걸음 C++로 프로그래밍한다는 것의 의미 세상에서 가장 간단한 C++ 프로그램
컴퓨터프로그래밍 1주차실습자료 Visual Studio 2005 사용법 익히기.
1. 신뢰할 수 있는 싸이트 등록 인터넷 익스플로러 실행 후 실행
피티라인 파워포인트 템플릿.
코크파트너 설치 가이드 Window 7.
.Net Web Application 2010 컴퓨터공학실험(Ⅰ)
㈜디아이씨 SSLVPN 협력사 접속방법 2017년 4월.
Windows 8 Ksystem G&I 설치.
Chapter05 오디오와 비디오 HTML5 Programming.
PLISM 컴포넌트 설치 방법.
1. C++ 시작하기.
11장. 포인터 01_ 포인터의 기본 02_ 포인터와 Const.
Outlook Addin 설치 방법 및 매뉴얼
Asp.net ㈜ 엘로이티큐브 최형규 사원.
홈페이지용 그림 활용법 그림 삽입 태그 <IMG> 배경 그림 다루기 그림과 문자열의 어울림
학습목표 학습목차 다른 홈페이지의 HTML 파일 코드를 보는 방법에 대해 알아봅니다.
스크래치 언어 이해 스크래치 이용법 습득 고양이가 말을 하며 움직이는 예제 작성
10강. JSP 본격적으로 살펴보기-II 스크립트릿, 선언, 표현식 지시자 주석 Lecturer Kim Myoung-Ho
비주얼 프로그래밍 1분반 화/목.
Microsoft SharePoint를 사용자 지정하는 방법 온라인 웹 사이트
이메일 자동 포워딩 방법 (Outlook/OWA)
Java의 정석 제 5 장 배 열 Java 정석 남궁성 강의 의
홀인원2.0 설치 메뉴얼.
2018년 11월 05일 박성진 Web & Internet [08] 레이아웃 P1 2018년 11월 05일 박성진
HTML5 Canvas 태그 92팸 유승연 안동찬 엄태인 김영재.
HTTP 프로토콜의 요청과 응답 동작을 이해한다. 서블릿 및 JSP 를 알아보고 역할을 이해한다.
LIT-GenAppSetup ※ Texting+ 클라이언트 프로그램은 제품 인증을 받은 제품입니다.
2 보안 1 도구 윈도우 XP > 온밀크 프로그램 설치 장애 (보안 설정) / 품목추가 깨질 때 장애증상
Adobe 제품 다운로드 및 설치 방법 안내 Adobe Creative Cloud Adobe License 권한을 받으신 분
Chapter6 : JVM과 메모리 6.1 JVM의 구조와 메모리 모델 6.2 프로그램 실행과 메모리 6.3 객체생성과 메모리
3D 프린팅 프로그래밍 01 – 기본 명령어 강사: 김영준 목원대학교 겸임교수.
스크린 샷 클릭가능 클릭시 영한사전 반영.
FileMaker를 이용한 데이터 관리 옥현진(KICE).
ASP.NET AJAX / AJAX Control Toolkit 응용 2008 컴퓨터공학실험( I )
Clipping 이진학.
웹디자인
2강_첫번째 안드로이드 프로젝트 에뮬레이터(AVD) 만들기 처음 만들어 보는 프로젝트 전체적인 구성 살펴보기
PMIS 서버 설정 환경설정 작성자 : 배경환.
빌드 성공.
학습목표 처음 만드는 비주얼 베이직 프로그램 프로그램 실행과 실행 파일 생성. 학습목표 처음 만드는 비주얼 베이직 프로그램 프로그램 실행과 실행 파일 생성.
디버깅 관련 옵션 실습해보기 발표 : 2008년 5월 19일 2분반 정 훈 승
DK-128 개발환경 설정 아이티즌 기술연구소
13주 실습강의 학기, 소프트웨어 설계 및 실험(Ⅰ).
.Net Web Application 2007 컴퓨터공학실험(Ⅰ)
3장 JSP프로그래밍의 개요 이장에서 배울 내용 : JSP페이지의 기본적인 개요설명과 JSP페이지의 처리과정 그리고 웹 어플리케이션의 구조에 대해서 학습한다.
여러 가지 집의 같은 점과 다른 점 비교하기 슬기로운 생활 2학년 1학기
01. 분산 파일 시스템의 개요 네트워크에 분산된 파일을 사용자가 쉽게 접근하고 관리할 수 있게 해준다.
12 그리드 시스템.
시스템 인터페이스 Lab1 X-window 및 명령어 사용.
함수, 모듈.
웹과 모바일 홈페이지의 이해와 제작 폰트_레이아웃
Bizforms PowerPoint 교육 사업계획서(사업운영) 원본 PPT 바로가기 >
9 브라우저 객체 모델.
슬라이드 쇼의 설정 슬라이드 쇼의 실행 파일과 폴더의 관리 글꼴을 포함해서 저장 웹 페이지로 게시 압축 파일
프로그래밍 언어 학습을 위한 가상실습환경 창원대학교 이수현.
미 술 5 학년 4.이야기 세상 (5-6/6) 초기화면 마술 그림을 그리고 작품 감상하기.
워드프로세서 스프레드시트 문서 관리 인터넷 활용
Homework #3 - 페이지 모듈화 및 로그인처리 -
어드민 로그인 ID : admin 비밀번호 : 서보테크 1. 제품소개 등록 - MISUBISHI
피티라인 파워포인트 템플릿.
버스와 메모리 전송 버스 시스템 레지스터와 레지스터들 사이의 정보 전송을 위한 경로
Power Point 예제 디자인 적용 (서식) - (디자인적용) - (원하는 디자인 선택)
오늘의 강의 제목을 입력하세요 소 속 : 인문대학 국어국문학과 이 름 : 홍길동 교수 1.
Chapter 11. 문서 인쇄 및 파일 형식.
Ch 4. 선택 위젯의 사용과 커스텀뷰 만들기 Assignment #1 04 – 1, 2) 08학번 정보과학과 유재윤
20 XMLHttpRequest.
Presentation transcript:

11 마스터페이지 마스터 페이지 들어가기 마스터 페이지 사용하기 2019-05-18 11 마스터 페이지 마스터 페이지 들어가기 마스터 페이지 사용하기

마스터 페이지 들어가기 마스터 페이지(master pages)란? 일반적으로 웹 사이트는 다음과 같이 상단 영역, 좌측 영역, 탐색 경로 영역, 하단 영역과 같이 웹 사이트를 이루는 공통 영역들이 정해진 위치에 놓여져 있으면서 각 페이지의 특화된 내용들만 바뀌는 것이 보통입니다.

마스터 페이지 들어가기

마스터 페이지 들어가기 위 그림에서는 상단 영역, 탐색 경로 영역, 하단 영역이 모든 웹 사이트에 공통적으로 따라다니는 영역이며 중간에 있는 내용만 각 페이지에 따라 바뀌게 됩니다. 이처럼 웹 사이트의 공통 영역과 공통 영역이 놓여져 있는 전체적인 큰 틀(레이아웃)을 정의하는 것이 바로 ASP.NET 2.0의 마스터 페이지 입니다. 다음은 위 그림과 같은 결과를 나오게 한 마스터 페이지를 VS 2005에서 본 그림입니다.

마스터 페이지 들어가기

마스터 페이지 들어가기 마스터 페이지가 나오게 된 배경 사실 ASP.NET 2.0이 나오기 전에도 웹 사이트의 공통 영역들을 효율적으로 처리하기 위한 다음과 같은 방법들이 있었습니다. 포함 파일은 주로 ASP 시절에 사용하던 방법으로서 웹 사이트의 공통 영역들을 하나의 물리적인 파일 형태로 분리해 놓고 필요한 부분에서 포함(include)시켜 사용하던 방법이었습니다. 물론 이 방법도 ASP.NET에서 사용가능 하지만 공통 영역들을 프로그래밍적으로 제어하기가 힘들고 포함 파일에서 잘못된 태그 하나가 전체 웹 사이트의 디자인에 영향을 줄 수 있다는 단점이 있으므로 ASP.NET에서는 거의 사용하지 않습니다. - 포함 파일(include file) - 사용자 정의 컨트롤(user controls)

마스터 페이지 들어가기 사용자 정의 컨트롤은 웹 사이트에서 공통적으로 사용되는 부분들을 하나의 모듈로 만들어 여러 페이지에서 끌어다 쓸 수 있도록 만든 컨트롤이며 이미 우리가 ‘7.5. 사용자 정의 컨트롤(user controls)’ 절에서 다루어 본 컨트롤입니다. ASP.NET 1.x에서는 공통 영역을 정의하기 위해 대부분 이 사용자 정의 컨트롤을 사용 했었습니다. 하지만 이 사용자 정의 컨트롤은 웹 사이트의 공통 영역 자체는 정의할 수 있지만 공통 영역들이 포함된 웹 사이트 전체의 틀(레이아웃)은 정의할 수 없었습니다. 그러므로 모든 웹 페이지(.aspx)는 웹 사이트 전체 틀을 정의하는 HTML 태그(보통 <table> 태그를 사용)를 중복적으로 가지고 있었으며 웹 사이트 전체 틀이 바뀔 경우 유연하게 대처할 수 없었습니다.

마스터 페이지 들어가기 이렇게 포함 파일과 사용자 정의 컨트롤의 단점을 보완하기 위해 나온 것이 바로 ASP.NET 2.0의 마스터 페이지입니다. [그림 11-2]를 보면 공통 영역과 공통 영역들이 웹 사이트에서 자리잡고 있는 위치(레이아웃)를 마스터 페이지에서 한번에 정의하고 있는 것을 볼 수 있습니다. 그러므로 개발자는 각 페이지를 만들 때 포함되어야 할 공통 영역에 대해 전혀 신경 쓰지 않아도 되며 웹 사이트 전체 디자인과 관련된 어떠한 변경 사항이 발생 하더라도 이 마스터 페이지를 수정하여 마스터 페이지를 사용하고 있는 모든 페이지(.aspx)에 일괄적으로 수정 사항을 적용 시킬 수 있는 것입니다. 그러므로 우리는 이 마스터 페이지를 통해 개발 생산성 향상 및 효율적인 유지보수를 기대할 수 있습니다.

마스터 페이지 들어가기 마스터 페이지의 구동 원리 마스터 페이지는 다음과 같은 구동 원리를 통해 웹 브라우저로 렌더링 됩니다.

마스터 페이지 들어가기 위의 그림에서 마스터 페이지(.master)에 정의된 공통 영역과 콘텐츠 페이지(.aspx)에 정의된 특화된 콘텐츠가 결합(바인딩)하여 하나의 결과 페이지(.aspx)로 서비스되는 것을 볼 수 있습니다. 여기서 콘텐츠 페이지는 마스터 페이지와 결합하는 .aspx 페이지를 말합니다. 또한 여기서 여러분이 한가지 알아두어야 할 것은 마스터 페이지는 단지 웹 사이트의 공통 요소 및 레이아웃을 정의하는 페이지이므로 단독으로 사용자에게 서비스될 수 없다는 것입니다. 즉, http://localhost/Chapter11/MasterPage.master와 같은 URL을 사용하여 마스터 페이지를 직접 요청할 수 없으며 반드시 마스터 페이지를 사용하는 콘텐츠 페이지(.aspx)를 요청해야 합니다.

마스터 페이지 들어가기 위의 그림을 좀더 구체적으로 그려보면 다음과 같습니다.

마스터 페이지 사용하기 기본적인 마스터 페이지 마스터 페이지와 콘텐츠 페이지를 생성하는 방법부터 알아 보겠습니다. 예제를 실행할 ‘C:\WebSites\Chapter11\’ 파일 시스템 웹 사이트를 만들고 다음의 [실습]을 따라 마스터 페이지와 콘텐츠 페이지를 생성해 봅시다. [실습] 마스터 페이지와 콘텐츠 페이지 생성하기

마스터 페이지 사용하기 [예제 11-1] 마스터 페이지 예제

마스터 페이지 사용하기 마스터 페이지에서 기본 콘텐츠 정의하기 예제 11-1에서는 다음과 같이 ContentPlaceHolder 컨트롤에 어떠한 내용도 정의하지 않았습니다. 하지만 다음과 같이 ContentPlaceHolder 컨트롤에 콘텐츠(내용)를 직접 작성하여 기본 콘텐츠를 정의할 수 있습니다. 이렇게 ContentPlaceHolder 컨트롤에 기본 콘텐츠를 정의하고 여기에 Content 컨트롤을 바인딩시키지 않으면 ContentPlaceHolder 컨트롤의 기본 콘텐츠가 그대로 렌더링됩니다. <asp:ContentPlaceHolder id="ContentPlaceHolder1" runat="server"></asp:ContentPlaceHolder> <asp:ContentPlaceHolder id="ContentPlaceHolder1" runat="server"> 이것은 마스터 페이지의 ContentPlaceHolder1에 정의한 기본 콘텐츠입니다. </asp:ContentPlaceHolder>

마스터 페이지 사용하기 [예제 11-2] 기본 콘텐츠 정의 예제

마스터 페이지 사용하기 마스터 페이지와 콘텐츠 페이지의 이벤트 실행 순서 마스터 페이지도 .aspx 페이지(웹 폼)와 마찬가지로 여러 이벤트를 가지고 있습니다. 그리고 마스터 페이지가 콘텐츠 페이지(.aspx 페이지)와 결합 하여 동작하는 만큼 이 두 페이지의 이벤트 실행 순서를 이해하는 것은 매우 중요합니다. 그리고 마스터 페이지와 콘텐츠 페이지의 이벤트 실행 순서는 뒤에서 공부할 “콘텐츠 페이지에서 마스터 페이지로의 접근 방법” 을 다룰 때 필요한 선행지식이기도 합니다. 마스터 페이지와 콘텐츠 페이지의 이벤트 실행 순서를 알아보기 위한 가장 간단한 방법은 각 이벤트가 발생할 때 해당 이벤트 처리기에서 문자열을 출력해보는 것입니다. 그럼, 이와 관련된 예제를 작성해 봅시다.

마스터 페이지 사용하기 [예제 11-3] 마스터 페이지와 콘텐츠 페이지의 이벤트 실행 순서 예제

마스터 페이지 사용하기 예제 11-3의 실행 결과 그림에서 우리가 캐치해야 할 부분은 바로 콘텐츠 페이지의 Load 이벤트가 마스터 페이지의 Load 이벤트보다 먼저 일어난다는 사실입니다. 그러므로 페이지 로드 시에 마스터 페이지의 Load 이벤트에서 초기화한 정보들을 콘텐츠 페이지에서 접근하려면 콘텐츠 페이지의 Load 이벤트가 아닌 콘텐츠 페이지의 LoadComplete 또는 PreRender 이벤트(마스터 페이지의 Load 이벤트 뒤에 발생하는 이벤트들) 등에서 접근해야 한다는 것을 알 수 있습니다.

마스터 페이지 사용하기 콘텐츠 페이지에서 마스터 페이지로 접근하기 페이지 로드 시 마스터 페이지에서 초기화된 서버 컨트롤을 콘텐츠 페이지에서 참조하고 콘텐츠 페이지의 Button 클릭 시 다시 마스터 페이지에 있는 서버 컨트롤을 참조하는 예제를 작성해 봅시다.

마스터 페이지 사용하기 [예제 11-4] 콘텐츠 페이지에서 마스터 페이지로의 접근 예제

마스터 페이지 사용하기 <Vitamin Quiz> 콘텐츠 페이지의 이벤트 실행 순서 예제 11-4에서 Ex04.aspx 파일의 6행을 제거하여 콘텐츠 페이지의 LoadComplete 이벤트 처리기를 다음과 같이 변경하고 <출력> 버튼을 클릭하면 그 결과는 어떻게 될까요? 예상 되는 결과와 그러한 결과가 나온 이유를 설명해 보세요. protected void Page_LoadComplete(object sender, EventArgs e) { Label tLabel = (Label)Master.FindControl("Label1"); Label1.Text = tLabel.Text; }

마스터 페이지 사용하기 중첩 마스터 페이지 이번에는 여러 개의 마스터 페이지를 중첩해서 사용하는 중첩 마스터 페이지에 대해 공부합니다. 중첩 마스터 페이지의 구동 원리는 다음과 같습니다.

마스터 페이지 사용하기 부모 마스터 페이지와 자식 마스터 페이지가 결합하여 새로운 결과 마스터 페이지를 생성하고 이렇게 만들어진 결과 마스터 페이지와 콘텐츠 페이지가 다시 결합하여 최종적인 결과 페이지를 생성합니다. 물론 중첩 마스터 페이지는 그 특성상 결과 마스터 페이지를 부모 마스터 페이지로 하고 다른 마스터 페이지를 자식 마스터 페이지로 하여 계속적으로 중첩할 수 있습니다. 중첩 마스터 페이지는 마스터 페이지 중에서도 공통된 부분을 뽑아내서 정의해야 할 때 유용하게 사용할 수 있습니다. 예를 들어 대규모 사이트에서 사이트의 전체적인 레이아웃은 부모 마스터 페이지에 정의하고 각 파트 별로 사용하는 마스터 페이지는 자식 마스터 페이지로 정의하면 체계적이고 효율적으로 사이트의 레이아웃을 잡을 수 있습니다.

마스터 페이지 사용하기 그럼, 세계로 뻗어 나가는 다국적 기업인 마데전자의 각 국가별 웹 사이트를 한 웹 응용 프로그램에서 관리한다고 가정하고 중첩 마스터 페이지를 사용해서 마데 전자의 각 국가별 웹 사이트를 구성해 보겠습니다. 그전에 Chapter11 파일 시스템 웹 사이트에 MasterMain.master, MasterKorea.master, MasterAmerica.master, Ex05.aspx(MasterKorea.master를 사용하는 콘텐츠 페이지), Ex05_1.aspx(MasterAmerica.master를 사용하는 콘텐츠 페이지) 파일을 추가합시다. 참고로 MasterMain.master는 MasterKorea.master와 MasterAmerica.master의 부모 마스터 페이지이지만 VS 2005에서는 중첩 마스터 페이지에 대한 디자인 인터페이스를 지원해 주지 않으므로 자식 마스터 페이지로 사용할 마스터 페이지의 @Master 지시문을 직접 수정하여 자식 마스터 페이지로 만들어야 합니다. 참고로 다음 그림과 같이 새 항목 추가 대화상자의 템플릿에서 ‘마스터 페이지’를 선택하더라도 마스터 페이지 선택 옵션이 비활성화되어 중첩 마스터 페이지를 만들 수 없습니다.

마스터 페이지 사용하기 아울러 한가지 더 덧붙이자면, 이와 같이 언어가 다른 다국적 웹 사이트는 지역화(localization)라는 기능을 통해 좀더 효율적으로 구현할 수 있으며 여기서는 단지, 중첩 마스터 페이지의 구조와 사용법을 설명하기 위해 다국적 웹 사이트를 예제로 선택했다는 것을 알아둡시다. 지역화는 ‘17장. 다국적 웹 사이트 만들기’ 에서 공부합니다.

마스터 페이지 사용하기 [예제 11-5] 중첩 마스터 페이지 예제

마스터 페이지 사용하기 마스터 페이지의 적용 범위 설정 웹 페이지 단위 웹 응용 프로그램 단위 마스터 페이지를 웹 페이지 단위로 적용하기 위해서는 @Page 지시문 또는 @Master 지시문의 MasterPageFile 특성에 해당 마스터 페이지의 경로를 지정하면 됩니다. 이것은 지금까지 우리가 사용해 왔던 범위 설정 방법입니다. 웹 응용 프로그램 단위 마스터 페이지를 응용 프로그램 단위로 적용하기 위해서는 다음과 같이 구성 파일에 <pages> 요소를 추가하고 이 요소의 masterPageFile 특성에 해당 마스터 페이지의 경로를 지정한 후,

마스터 페이지 사용하기 <configuration> <system.web> <pages masterPageFile="~/MasterPage.master" /> </system.web> </configuration> 콘텐츠 페이지의 @Page 지시문에 있는 MasterPageFile 특성을 다음과 같이 제거해주면 됩니다. <%@ Page Language="C#"%> <asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server"> <b>웹 응용 프로그램 단위의 마스터 페이지를 사용하였습니다.</b> </asp:Content>

마스터 페이지 사용하기 <Exercise 11-1> 동적으로 마스터 페이지 연결 다음과 같은 두 개의 마스터 페이지가 존재할 때 [MasterPage1.master] … (생략) … <h3>MasterPage1.master</h3> <asp:ContentPlaceHolder id="ContentPlaceHolder1" runat="server"> </asp:ContentPlaceHolder>

마스터 페이지 사용하기 다음 그림과 같이 <마스터 페이지1 사용> 버튼을 클릭하면 MasterPage1.master를 사용하고 <마스터 페이지2 사용> 버튼을 클릭하면 MasterPage2.master를 사용하는 콘텐츠 페이지를 구현해 봅시다. [MasterPage2.master] … (생략) … <h3>MasterPage2.master</h3> <asp:ContentPlaceHolder id="ContentPlaceHolder1" runat="server"> </asp:ContentPlaceHolder>

마스터 페이지 사용하기 힌트 : 콘텐츠 페이지에서 사용할 마스터 페이지를 동적으로 연결하려면 Page 개체의 MasterPageFile 속성에 연결할 마스터 페이지의 경로를 지정하면 됩니다 (예 : Page.MasterPageFile = “~/MasterPage1.master”;).

이것만은 알고 갑시다 1. 각 문장에 어울리는 적절한 용어를 상자 안에서 골라 보세요. ContentPlaceHolder 마스터 페이지 @Master 지시문 콘텐츠 페이지 MasterPageFile ( )는 .master라는 확장자를 가지면서 전체 웹 사이트의 공통 영역 및 레이아웃을 정의하는 새로운 개념의 페이지 입니다. ( )는 마스터 페이지와 결합하는 .aspx 페이지입니다. 웹 폼(.aspx)에서는 @Page 지시문을 사용하여 웹 폼의 특성을 정의하는 반면, 마스터 페이지(.master)에서는 ( )을 사용하여 마스터 페이지의 특성을 정의합니다. Content 컨트롤에 정의된 콘텐츠(내용)는 마스터 페이지의 ( ) 컨트롤에 렌더링됩니다. 콘텐츠 페이지의 @Page 지시문에는 사용할 마스터 페이지의 경로를 지정하는 ( ) 특성을 반드시 포함해야 합니다.

이것만은 알고 갑시다 2. 다음은 마스터 페이지와 콘텐츠 페이지의 이벤트 실행 순서를 위에서부터 아래로 기술한 것입니다. 빈칸에 들어갈 이벤트는 무엇입니까? 콘텐츠 페이지의 Init 이벤트 콘텐츠 페이지의 PreLoad 이벤트 ( ) 마스터 페이지의 Load 이벤트 마스터 페이지 또는 콘텐츠 페이지의 서버 컨트롤 이벤트 콘텐츠 페이지의 LoadComplete 이벤트

이것만은 알고 갑시다 3. 다음은 콘텐츠 페이지의 Button1 클릭 시 마스터 페이지의 TextBox1에 접근하여 TextBox1에 입력된 텍스트를 출력하는 구문입니다. 빈칸을 채워서 구문을 완성하세요. protected void Button1_Click(object sender, EventArgs e) { TextBox tTextBox = Response.Write( tTextBox.Text); }