220 likes | 369 Views
웹 폼 이벤트. 이벤트와 이벤트 처리기 이벤트 (event) 는 사전적 의미로 ‘ 사건 , ‘ 일어난 일 ’ , ‘ 행사 ’ 등의 뜻을 가지며 .NET 응용 프로그램에서의 이벤트는 코드로 응답하거나 처리할 수 있는 동작 자체를 의미합니다 . ASP.NET 의 서버 컨트롤과 웹 폼은 여러 상황에 맞게 미리 정의된 이벤트 집합을 개발자에게 제공합니다 .
E N D
웹 폼 이벤트 • 이벤트와 이벤트 처리기 • 이벤트(event)는 사전적 의미로 ‘사건, ‘일어난 일’, ‘행사’ 등의 뜻을 가지며 .NET 응용 프로그램에서의 이벤트는 코드로 응답하거나 처리할 수 있는 동작 자체를 의미합니다. • ASP.NET의 서버 컨트롤과 웹 폼은 여러 상황에 맞게 미리 정의된 이벤트 집합을 개발자에게 제공합니다. • 이벤트 처리기(event handler)는 이벤트에 바인딩되는 메서드입니다. 이벤트가 발생하면 이벤트와 연결된(바인딩 된) 이벤트 처리기가 실행됩니다.
웹 폼 이벤트 • 모든 이벤트 처리기는 다음과 같이 두 개의 매개변수를 정의합니다. protected void Page_Load(object sender, EventArgs e) { } • 하나는 이벤트가 발생한 개체를 나타내는 개체(sender)이며 다른 하나는 이벤트 관련 정보를 포함하는 이벤트 개체(e)입니다. 특히 두 번째 매개변수는 주로 EventArgs 형식이지만 일부 서버 컨트롤들은 나름대로의 고유 형식을 사용합니다.
웹 폼 이벤트 • Load 이벤트 • 웹 폼은 웹 폼 고유의 이벤트를 가지고 있습니다. 그 중 가장 사용 빈도가 높은 것은 바로 Load 이벤트입니다. • 페이지 실행 주기 • 아래 표는 웹 폼이 실행될 때 즉, 페이지가 로드 될 때 발생할 수 있는 이벤트를 순서에 따라 정리한 것입니다.
웹 폼 이벤트 • 사실 ASP.NET 2.0으로 넘어오면서 페이지 로딩 시 발생할 수 있는 이벤트가 많이 추가 되었습니다. 이 말은 페이지 로딩 시 이벤트가 더 세분화 되었다는 뜻이며 개발자가 웹 폼 이벤트를 좀더 세세하게 제어할 수 있게 되었다는 뜻이기도 합니다. • 활성 여부 부분에서 ‘항상’과 ‘다시 게시(postback)’가 있는 데 ‘항상’은 페이지가 로드 될 때 항상 실행되는 이벤트라는 의미이며 ‘다시 게시’는 다시 게시 될 때에만 실행되는 이벤트라는 뜻입니다.
웹 폼 이벤트 • 위의 표에서 우리가 유심히 봐야 할 이벤트는 다음 세 개로 추려낼 수 있습니다. • Init • Load • PreRender • 이 이벤트들은 개발 시 개발자들이 가장 많이 사용하는 웹 폼 이벤트입니다. 그 중에서도 특히 Load 이벤트가 가장 많이 사용되고 그 다음으로 PreRender 이벤트가 많이 사용됩니다.
웹 폼 이벤트 • 다음은 웹 폼 이벤트의 주요 실행 순서를 그림으로 표현한 것입니다. [웹 폼 이벤트 실행 순서]
웹 폼 이벤트 • [예제 5-3] 웹 폼 이벤트 실행 순서
다시 게시와 페이지 간 게시 • 다시 게시(Postback) • 다시 게시는 자신을 타겟으로 하여 현재 페이지를 다시 서버로 전송하는 프로세스입니다. • 위의 그림을 보면 다시 게시가 자신을 타겟으로 하여 현재 페이지를 다시 서버로 전송하는 행위임을 볼 수 있습니다.단, 사용자가 페이지를 처음 요청하는 것은 다시 게시가 아닙니다. 다시 말해 페이지가 처음 로드 된 것은 다시 게시가 아니라는 말입니다.
다시 게시와 페이지 간 게시 • [예제 5-4] 다시 게시 예제 • [실습] Button 서버 컨트롤의 Click 이벤트 처리기 등록하기
다시 게시와 페이지 간 게시 • [예제 5-5] 텍스트 박스에 입력된 값을 출력하는 예제
다시 게시와 페이지 간 게시 <Vitamin Quiz> 다시 게시와 웹 폼 실행 순서 예제 5-5의 실행 결과는 우리가 예상 했던 결과가 아닙니다. 우리가 예상 했던 결과는 최종적으로 텍스트 박스에 입력한 문자열이 출력되는 다음 그림과 같은 모습입니다. 위와 같이 제대로 된 결과가 나올 수 있도록 Page_Load() 이벤트 처리기를 수정해 봅시다.
다시 게시와 페이지 간 게시 • 페이지 간 게시(Cross-Page Posting) • 다시 게시(postback)가 자신을 타겟으로 하여 현재 페이지를 다시 서버로 전송하는 프로세스인데 반해 페이지 간 게시는 타겟을 다른 대상 페이지로 하여 현재 페이지를 서버로 전송하는 프로세스입니다.
다시 게시와 페이지 간 게시 • [예제 5-6] 페이지 간 게시 예제
ASP.NET 2.0 응용 프로그램 구조 • 구성 파일(Configuration File) • 구성 파일은 응용 프로그램이나 웹 사이트에 대한 옵션 설정정보가 들어 있는 .config 확장자를 가진 XML 파일입니다. • Global.asax 파일 • Global.asax 파일은 ASP.NET 응용 프로그램 파일이라고도 하며 ASP.NET에 의해 발생되는 응용 프로그램 수준의 이벤트(웹 응용 프로그램 시작 이벤트, 웹 응용 프로그램 종료 이벤트 등등)를 처리하는 파일입니다.
ASP.NET 2.0 응용 프로그램 구조 • ASP.NET 응용 프로그램 폴더 • ASP.NET 2.0에서는 특정한 콘텐츠 형식에 사용할 수 있는 특정 폴더(예약된 폴더)를 제공하는 데 이것을 ASP.NET 응용 프로그램 폴더라고 합니다. • 다음 표에서는 ASP.NET 응용 프로그램 폴더의 종류 및 일반적으로 각 폴더에 포함되는 파일 형식을 보여줍니다.
이것만은 알고 갑시다 1. 각 문장에 어울리는 적절한 용어를 상자 안에서 골라 보세요. partial 형식 이벤트 처리기 단일 파일 페이지 모델 페이지 간 게시 표현 부분 코드 숨김 페이지 모델 Global.asax 코드 부분 ASP.NET 응용 프로그램 폴더 소스 뷰 PostBackUrl 다시 게시 이벤트 XHTML 디자인 뷰 웹 폼 구성 파일 IsPostBack • ( )은 ASP.NET 페이지(.aspx 파일)와 같은 개념으로서 ASP.NET 프로그래밍을 하기 위해 사용하는 Form(형틀) 또는 기반입니다. • 웹 폼은 웹 폼의 시각적인 부분을 담당하는 ( )과 웹 폼의 내부 로직을 처리하는 ( )으로 구성되어 있습니다. • VS 2005에서는 웹 폼 효율적인 작성을 위해 ( )와 ( )를 제공합니다. • 웹 폼 코드 모델에는 코드 부분, 표현 부분이 동일한 웹 폼에 존재하는 ( )과 코드 부분, 표현 부분이 분리되어 있는 ( )이 존재합니다. • ( )은 HTML을 XML 문서로 정의하는 W3C의 표준으로서 엄격한 문법 체크와 웹 페이지의 스타일 및 내용의 완전한 분리를 통해 특정 시스템, 운영체제, 브라우저에 상관없이 모든 환경에서 호환되는 웹 페이지를 만들 수 있도록 해줍니다. • ASP.NET 2.0 코드 숨김 페이지 모델에서는 C# 2.0에 추가된 ( )라는 새로운 언어 기능을 사용하여 ASP.NET 1.x에서 가지고 있던 상속의 복잡성, 컴파일의 복잡성 문제를 한번에 해결했습니다. • ( )는 .NET 응용 프로그램에서 코드로 응답하거나 처리할 수 있는 동작 자체를 의미합니다.
이것만은 알고 갑시다 partial 형식 이벤트 처리기 단일 파일 페이지 모델 페이지 간 게시 표현 부분 코드 숨김 페이지 모델 Global.asax 코드 부분 ASP.NET 응용 프로그램 폴더 소스 뷰 PostBackUrl 다시 게시 이벤트 XHTML 디자인 뷰 웹 폼 구성 파일 IsPostBack • ( )는 해당 이벤트 발생 시 실행되는 메서드입니다. • ( )는 자신을 타겟으로 하여 현재 페이지를 서버로 전송하는 프로세스입니다. • ( )는 다른 대상 페이지를 타겟으로 하여 현재 페이지를 서버로 전송하는 프로세스입니다. • Page 개체의 ( ) 속성은 웹 폼의 다시 게시(postback) 여부를 bool 형식의 값으로 반환합니다. • Button 서버 컨트롤을 사용하여 페이지 간 게시를 구현하려면 Button 서버 컨트롤의 ( ) 속성에 타겟 페이지의 경로를 지정하면 됩니다. • ( )은 응용 프로그램이나 웹 사이트에 대한 옵션 설정정보가 들어 있는 .config 확장자를 가진 XML 파일입니다. • ( ) 파일은 ASP.NET 응용 프로그램 파일이라고도 하며 ASP.NET에 의해 발생되는 응용 프로그램 수준의 이벤트를 처리하는 파일입니다. • ASP.NET 2.0에서는 특정한 콘텐츠 형식에 사용할 수 있는 특정 폴더(예약된 폴더)를 제공하는 데 이것을 ( )라고 하며 여기에는 App_Code, App_Data, App_Themes, Bin과 같은 폴더들이 있습니다.
이것만은 알고 갑시다 2. 다음은 웹 폼의 주요 실행 순서입니다. (1), (2), (3)에 들어갈 적절한 이벤트를 상자 안에서 골라 보세요. Load 이벤트 서버 컨트롤 이벤트 Init 이벤트