22
RUNNING HEADER, 14 PT., ALL CAPS, Line Spacing=1 line www.hanbitbook.co.kr 이이이이 이이이 이이이 이이이 (event) 이 이이이 이이이 ‘이이 , ‘ 이이이 이’ , ‘ 이이’ 이이 이이 이이이 .NET 이이 이이이이이이이 이이이이 이이이 이이이이이 이이이 이 이이 이이 이이이 이이이이이 . ASP.NET 이 이이 이이이이 이 이이 이이 이이이 이이 이이 이이이 이이이 이이이 이이이이이 이이이이이 . 이이이 이이이 (event handler) 이 이이이이 이이이이이 이이이이이이 . 이이이이 이이이이 이이이이 이이이 ( 이이이 이 ) 이이이 이이이이 이이이이이 . 웹 웹 웹웹웹

이벤트와 이벤트 처리기

  • Upload
    urbana

  • View
    38

  • Download
    0

Embed Size (px)

DESCRIPTION

웹 폼 이벤트. 이벤트와 이벤트 처리기 이벤트 (event) 는 사전적 의미로 ‘ 사건 , ‘ 일어난 일 ’ , ‘ 행사 ’ 등의 뜻을 가지며 .NET 응용 프로그램에서의 이벤트는 코드로 응답하거나 처리할 수 있는 동작 자체를 의미합니다 . ASP.NET 의 서버 컨트롤과 웹 폼은 여러 상황에 맞게 미리 정의된 이벤트 집합을 개발자에게 제공합니다 . - PowerPoint PPT Presentation

Citation preview

Page 1: 이벤트와 이벤트 처리기

RUNNING HEADER, 14 PT., ALL CAPS, Line Spacing=1 line

www.hanbitbook.co.kr

이벤트와 이벤트 처리기 이벤트 (event) 는 사전적 의미로 ‘사건 , ‘ 일어난

일’ , ‘ 행사’ 등의 뜻을 가지며 .NET 응용 프로그램에서의 이벤트는 코드로 응답하거나 처리할 수 있는 동작 자체를 의미합니다 .

ASP.NET 의 서버 컨트롤과 웹 폼은 여러 상황에 맞게 미리 정의된 이벤트 집합을 개발자에게 제공합니다 .

이벤트 처리기 (event handler) 는 이벤트에 바인딩되는 메서드입니다 . 이벤트가 발생하면 이벤트와 연결된 ( 바인딩 된 ) 이벤트 처리기가 실행됩니다 .

웹 폼 이벤트

Page 2: 이벤트와 이벤트 처리기

RUNNING HEADER, 14 PT., ALL CAPS, Line Spacing=1 line

www.hanbitbook.co.kr

모든 이벤트 처리기는 다음과 같이 두 개의 매개변수를 정의합니다 .

웹 폼 이벤트

protected void Page_Load(object sender, EventArgs e){

}

하나는 이벤트가 발생한 개체를 나타내는 개체 (sender) 이며 다른 하나는 이벤트 관련 정보를 포함하는 이벤트 개체 (e) 입니다 . 특히 두 번째 매개변수는 주로 EventArgs 형식이지만 일부 서버 컨트롤들은 나름대로의 고유 형식을 사용합니다 .

Page 3: 이벤트와 이벤트 처리기

RUNNING HEADER, 14 PT., ALL CAPS, Line Spacing=1 line

www.hanbitbook.co.kr

Load 이벤트 웹 폼은 웹 폼 고유의 이벤트를 가지고 있습니다 . 그 중

가장 사용 빈도가 높은 것은 바로 Load 이벤트입니다 .

페이지 실행 주기 아래 표는 웹 폼이 실행될 때 즉 , 페이지가 로드 될 때

발생할 수 있는 이벤트를 순서에 따라 정리한 것입니다 .

웹 폼 이벤트

Page 4: 이벤트와 이벤트 처리기

RUNNING HEADER, 14 PT., ALL CAPS, Line Spacing=1 line

www.hanbitbook.co.kr

웹 폼 이벤트

이벤트 활성 여부Constructor 항상Construct 항상TestDeviceFilter 항상AddParsedSubObject 항상DeterminePostBackMode 항상PreInit 항상LoadPersonalizationData 항상InitializeThemes 항상Init 항상ApplyControlSkin 항상ApplyPersonalization 항상InitComplete 항상LoadPageStateFromPersistenceMedium 다시 게시 (postback)

LoadControlState 다시 게시LoadViewState 다시 게시ProcessPostData1 다시 게시

Page 5: 이벤트와 이벤트 처리기

RUNNING HEADER, 14 PT., ALL CAPS, Line Spacing=1 line

www.hanbitbook.co.kr

웹 폼 이벤트

PreLoad 항상Load 항상ProcessPostData2 다시 게시RaiseChangedEvents 다시 게시RaisePostBackEvent 다시 게시LoadComplete 항상PreRender 항상PreRenderComplete 항상SavePersonalizationData 항상SaveControlState 항상SaveViewState 항상SavePageStateToPersistenceMedium 항상Render 항상Unload 항상

Page 6: 이벤트와 이벤트 처리기

RUNNING HEADER, 14 PT., ALL CAPS, Line Spacing=1 line

www.hanbitbook.co.kr

사실 ASP.NET 2.0 으로 넘어오면서 페이지 로딩 시 발생할 수 있는 이벤트가 많이 추가 되었습니다 . 이 말은 페이지 로딩 시 이벤트가 더 세분화 되었다는 뜻이며 개발자가 웹 폼 이벤트를 좀더 세세하게 제어할 수 있게 되었다는 뜻이기도 합니다 .

활성 여부 부분에서 ‘항상’과 ‘다시 게시 (postback)’가 있는 데 ‘항상’은 페이지가 로드 될 때 항상 실행되는 이벤트라는 의미이며 ‘다시 게시’는 다시 게시 될 때에만 실행되는 이벤트라는 뜻입니다 .

웹 폼 이벤트

Page 7: 이벤트와 이벤트 처리기

RUNNING HEADER, 14 PT., ALL CAPS, Line Spacing=1 line

www.hanbitbook.co.kr

위의 표에서 우리가 유심히 봐야 할 이벤트는 다음 세 개로 추려낼 수 있습니다 .

웹 폼 이벤트

- Init- Load- PreRender

이 이벤트들은 개발 시 개발자들이 가장 많이 사용하는 웹 폼 이벤트입니다 . 그 중에서도 특히 Load 이벤트가 가장 많이 사용되고 그 다음으로 PreRender 이벤트가 많이 사용됩니다 .

Page 8: 이벤트와 이벤트 처리기

RUNNING HEADER, 14 PT., ALL CAPS, Line Spacing=1 line

www.hanbitbook.co.kr

웹 폼 이벤트

다음은 웹 폼 이벤트의 주요 실행 순서를 그림으로 표현한 것입니다 .

[ 웹 폼 이벤트 실행 순서 ]

Page 9: 이벤트와 이벤트 처리기

RUNNING HEADER, 14 PT., ALL CAPS, Line Spacing=1 line

www.hanbitbook.co.kr

웹 폼 이벤트

[ 예제 5-3] 웹 폼 이벤트 실행 순서

Page 10: 이벤트와 이벤트 처리기

RUNNING HEADER, 14 PT., ALL CAPS, Line Spacing=1 line

www.hanbitbook.co.kr

다시 게시 (Postback) 다시 게시는 자신을 타겟으로 하여 현재 페이지를

다시 서버로 전송하는 프로세스입니다 .

다시 게시와 페이지 간 게시

위의 그림을 보면 다시 게시가 자신을 타겟으로 하여 현재 페이지를 다시 서버로 전송하는 행위임을 볼 수 있습니다 . 단 , 사용자가 페이지를 처음 요청하는 것은 다시 게시가 아닙니다 . 다시 말해 페이지가 처음 로드 된 것은 다시 게시가 아니라는 말입니다 .

Page 11: 이벤트와 이벤트 처리기

RUNNING HEADER, 14 PT., ALL CAPS, Line Spacing=1 line

www.hanbitbook.co.kr

[ 예제 5-4] 다시 게시 예제

다시 게시와 페이지 간 게시

[ 실습 ] Button 서버 컨트롤의 Click 이벤트 처리기 등록하기

Page 12: 이벤트와 이벤트 처리기

RUNNING HEADER, 14 PT., ALL CAPS, Line Spacing=1 line

www.hanbitbook.co.kr

[ 예제 5-5] 텍스트 박스에 입력된 값을 출력하는 예제

다시 게시와 페이지 간 게시

Page 13: 이벤트와 이벤트 처리기

RUNNING HEADER, 14 PT., ALL CAPS, Line Spacing=1 line

www.hanbitbook.co.kr

다시 게시와 페이지 간 게시

<Vitamin Quiz> 다시 게시와 웹 폼 실행 순서예제 5-5 의 실행 결과는 우리가 예상 했던 결과가 아닙니다 . 우리가 예상 했던 결과는 최종적으로 텍스트 박스에 입력한 문자열이 출력되는 다음 그림과 같은 모습입니다 .

위와 같이 제대로 된 결과가 나올 수 있도록 Page_Load() 이벤트 처리기를 수정해 봅시다 .

Page 14: 이벤트와 이벤트 처리기

RUNNING HEADER, 14 PT., ALL CAPS, Line Spacing=1 line

www.hanbitbook.co.kr

페이지 간 게시 (Cross-Page Posting) 다시 게시 (postback) 가 자신을 타겟으로 하여 현재

페이지를 다시 서버로 전송하는 프로세스인데 반해 페이지 간 게시는 타겟을 다른 대상 페이지로 하여 현재 페이지를 서버로 전송하는 프로세스입니다 .

다시 게시와 페이지 간 게시

Page 15: 이벤트와 이벤트 처리기

RUNNING HEADER, 14 PT., ALL CAPS, Line Spacing=1 line

www.hanbitbook.co.kr

[ 예제 5-6] 페이지 간 게시 예제

다시 게시와 페이지 간 게시

Page 16: 이벤트와 이벤트 처리기

RUNNING HEADER, 14 PT., ALL CAPS, Line Spacing=1 line

www.hanbitbook.co.kr

구성 파일 (Configuration File) 구성 파일은 응용 프로그램이나 웹 사이트에 대한

옵션 설정정보가 들어 있는 .config 확장자를 가진 XML 파일입니다 .

Global.asax 파일 Global.asax 파일은 ASP.NET 응용 프로그램

파일이라고도 하며 ASP.NET 에 의해 발생되는 응용 프로그램 수준의 이벤트 ( 웹 응용 프로그램 시작 이벤트 , 웹 응용 프로그램 종료 이벤트 등등 )를 처리하는 파일입니다 .

ASP.NET 2.0 응용 프로그램 구조

Page 17: 이벤트와 이벤트 처리기

RUNNING HEADER, 14 PT., ALL CAPS, Line Spacing=1 line

www.hanbitbook.co.kr

ASP.NET 응용 프로그램 폴더 ASP.NET 2.0 에서는 특정한 콘텐츠 형식에 사용할

수 있는 특정 폴더 ( 예약된 폴더 ) 를 제공하는 데 이것을 ASP.NET 응용 프로그램 폴더라고 합니다 .

다음 표에서는 ASP.NET 응용 프로그램 폴더의 종류 및 일반적으로 각 폴더에 포함되는 파일 형식을 보여줍니다 .

ASP.NET 2.0 응용 프로그램 구조

Page 18: 이벤트와 이벤트 처리기

RUNNING HEADER, 14 PT., ALL CAPS, Line Spacing=1 line

www.hanbitbook.co.kr

ASP.NET 2.0 응용 프로그램 구조

폴더 설명App_Browsers 개별 브라우저를 식별하고 브라우저의 기능을 확인하기 위해

ASP.NET 에서 사용하는 브라우저 정의 (.browser 파일 ) 를 포함합니다 .

App_Code 응용 프로그램의 일부로 컴파일할 클래스 파일 (.cs, .vb 등등 ) 을 포함합니다 . App_Code 폴더는 이 온라인 강의의 실전 예제를 다루는 25 장 , 26 장 , 27 장 , 28장에서 사용됩니다 .

App_Data MDF 파일 , XML 파일 및 기타 데이터 저장소 파일을 비롯한 응용 프로그램 데이터 파일을 포함합니다 . 이 폴더는 ‘ 13 장 . 보안’ , ‘15 장 . 웹 파트’에서 사용됩니다 .

App_GlobalResources

전역 범위의 어셈블리로 컴파일되는 리소스 (.resx 및 .resources 파일 ) 를 포함합니다 . 이 폴더는 ‘ 17 장 . 다국적 웹 사이트 만들기’에서 사용됩니다 .

App_LocalResources 응용 프로그램의 특정 페이지 , 사용자 정의 컨트롤 또는 마스터 페이지와 관련된 리소스 (.resx 및 .resources 파일 ) 를 포함합니다 . 이 폴더는 ‘ 17 장 . 다국적 웹 사이트 만들기’에서 사용됩니다 .

Page 19: 이벤트와 이벤트 처리기

RUNNING HEADER, 14 PT., ALL CAPS, Line Spacing=1 line

www.hanbitbook.co.kr

ASP.NET 2.0 응용 프로그램 구조

App_Themes ASP.NET 페이지와 서버 컨트롤의 모양을 정의하는 파일 (.skin 및 .css 파일 , 그리고 이미지 파일과 일반 리소스 ) 의 컬렉션을 포함합니다 . 이 폴더는 ‘ 10 장 . 테마’에서 사용됩니다 .

App_WebReferences 응용 프로그램에서 사용할 웹 참조를 정의하는 참조 계약 파일 (.wsdl 파일 ), 스키마 (.xsd 파일 ), 검색 문서 파일 (.disco 파일 , .discomap 파일 ) 을 포함합니다 .

Bin 응용 프로그램에서 참조할 컨트롤 , 구성 요소 또는 기타 코드에 대해 컴파일 된 어셈블리 (.dll 파일 ) 를 포함합니다 .

Page 20: 이벤트와 이벤트 처리기

RUNNING HEADER, 14 PT., ALL CAPS, Line Spacing=1 line

www.hanbitbook.co.kr

이것만은 알고 갑시다

partial 형식 이벤트 처리기 단일 파일 페이지 모델페이지 간 게시 표현 부분 코드 숨김 페이지 모델Global.asax 코드 부분 ASP.NET 응용 프로그램 폴더소스 뷰 PostBackUrl 다시 게시이벤트 XHTML 디자인 뷰웹 폼 구성 파일 IsPostBack

(1) ( ) 은 ASP.NET 페이지 (.aspx 파일 ) 와 같은 개념으로서 ASP.NET 프로그래밍을 하기 위해 사용하는 Form( 형틀 ) 또는 기반입니다 .

(2) 웹 폼은 웹 폼의 시각적인 부분을 담당하는 ( ) 과 웹 폼의 내부 로직을 처리하는 ( ) 으로 구성되어 있습니다 .

(3) VS 2005 에서는 웹 폼 효율적인 작성을 위해 ( ) 와 ( ) 를 제공합니다 .(4) 웹 폼 코드 모델에는 코드 부분 , 표현 부분이 동일한 웹 폼에 존재하는 ( ) 과 코드 부분 ,

표현 부분이 분리되어 있는 ( ) 이 존재합니다 .(5) ( ) 은 HTML 을 XML 문서로 정의하는 W3C 의 표준으로서 엄격한 문법 체크와 웹 페이지의

스타일 및 내용의 완전한 분리를 통해 특정 시스템 , 운영체제 , 브라우저에 상관없이 모든 환경에서 호환되는 웹 페이지를 만들 수 있도록 해줍니다 .

(6) ASP.NET 2.0 코드 숨김 페이지 모델에서는 C# 2.0 에 추가된 ( ) 라는 새로운 언어 기능을 사용하여 ASP.NET 1.x 에서 가지고 있던 상속의 복잡성 , 컴파일의 복잡성 문제를 한번에 해결했습니다 .

(7) ( ) 는 .NET 응용 프로그램에서 코드로 응답하거나 처리할 수 있는 동작 자체를 의미합니다 .

1. 각 문장에 어울리는 적절한 용어를 상자 안에서 골라 보세요 .

Page 21: 이벤트와 이벤트 처리기

RUNNING HEADER, 14 PT., ALL CAPS, Line Spacing=1 line

www.hanbitbook.co.kr

이것만은 알고 갑시다

partial 형식 이벤트 처리기 단일 파일 페이지 모델페이지 간 게시 표현 부분 코드 숨김 페이지 모델Global.asax 코드 부분 ASP.NET 응용 프로그램 폴더소스 뷰 PostBackUrl 다시 게시이벤트 XHTML 디자인 뷰웹 폼 구성 파일 IsPostBack

(8) ( ) 는 해당 이벤트 발생 시 실행되는 메서드입니다 .(9) ( ) 는 자신을 타겟으로 하여 현재 페이지를 서버로 전송하는 프로세스입니다 .(10) ( ) 는 다른 대상 페이지를 타겟으로 하여 현재 페이지를 서버로 전송하는 프로세스입니다 .(11) Page 개체의 ( ) 속성은 웹 폼의 다시 게시 (postback) 여부를 bool 형식의 값으로

반환합니다 .(12) Button 서버 컨트롤을 사용하여 페이지 간 게시를 구현하려면 Button 서버 컨트롤의 ( )

속성에 타겟 페이지의 경로를 지정하면 됩니다 .(13) ( ) 은 응용 프로그램이나 웹 사이트에 대한 옵션 설정정보가 들어 있는 .config 확장자를

가진 XML 파일입니다 .(14) ( ) 파일은 ASP.NET 응용 프로그램 파일이라고도 하며 ASP.NET 에 의해 발생되는 응용

프로그램 수준의 이벤트를 처리하는 파일입니다 .(15) ASP.NET 2.0 에서는 특정한 콘텐츠 형식에 사용할 수 있는 특정 폴더 ( 예약된 폴더 ) 를

제공하는 데 이것을 ( ) 라고 하며 여기에는 App_Code, App_Data, App_Themes, Bin 과 같은 폴더들이 있습니다 .

Page 22: 이벤트와 이벤트 처리기

RUNNING HEADER, 14 PT., ALL CAPS, Line Spacing=1 line

www.hanbitbook.co.kr

이것만은 알고 갑시다

2. 다음은 웹 폼의 주요 실행 순서입니다 . (1), (2), (3) 에 들어갈 적절한 이벤트를 상자 안에서 골라 보세요 .

Load 이벤트 서버 컨트롤 이벤트 Init 이벤트