상세 컨텐츠

본문 제목

ASP.NET Page클래스와 Page지시문에 대한 간단한 설명

Web Development

by thankee 2008. 1. 9. 06:52

본문

ASP.NET의 페이지는 기본적으로 System.Web.UI.Page클래스를 상속합니다. Page클래스는 대부분의 중요한 기능을 제공하는데 그 중 몇 가지르르 소개하자면 다음과 같습니다.

1. IsPostBack : Page.IsPostBack로 표현할 수 있는 IsPostBack는 페이지가 PostBack되었는지 아니면 처음 로드 되었는지에 대해서 true 또는 false값을 지니고 있습니다. 페이지가 처음 로드된 것이라면 false값을 가지고 있습니다.

2. Title : 웹페이지의 제목을 설정하거나 참조할 수 있습니다.

3. SetFocus(컨트롤) : 해당 컨트롤에 포커스를 줄 수 있습니다.

4. Header : HtmlHead객체를 참조하고 있습니다. htmlHead는 Html의 헤더정보를 지정하는 객체입니다.
예제
0. <head>의 <title>태그 내용 바꾸기
Page.Header.Title = "제목";

1. <head>에 <link href="" rel="" ...>태그 등록하기
HtmlLink hl = new HtmlLink(); //HtmlLink객체 생성
hl.Href = "불러올문서의URL"; //불러올 css나 js문서의 URL을 직접 기입
hl.Attributes.Add("속성", "값"); //그외 추가 속성은 이와 같이 추가가능
Page.Header.Controls.Add(hl);//객체를 <head>에 추가

2. CSS구문 <head>에 등록하기
  - 1. 특정 태그에 적용되도록 Style추가하기
Style style = new Style();
style.ForeColor = System.Drawing.Color.Blue;
style.Font.Italic = true;
Page.Header.StyleSheet.CreateStyleRule(style, null, "태그명, 태그명2, 태그명3....");

   - 2. Class명으로 사용할 수 있도록 Style추가하기 Style style = new Style();
style.BorderWidth = 0;
style.Font.Underline = true;
Page.Header.StyleSheet.RegisterStyle(style, null);
컨트롤명.CssClass = style.CssClass; //컨트롤의 CssClass속성에 동적으로 Style적용 법


5. ClientScript : 자바스크립트를 동적으로 웹페이지에 추가하기위해 사용되는 Property로서 ClientScriptManager객체를 반환합니다. ClientScriptManager클래스의 몇 몇가지 메서드는 다음과 같습니다.
  • RegisterStartupScript(type, string name, string script, [boolean]) : type와 name로 구분되는 script를 등록합니다. boolean은 기본적으로 false로서, <script languag=..>태그를 추가할지 여부를 결정합니다. type와 name가 같으면 같은 스크립트로 분류합니다. 이 메서드는 Html로 출력될 때 페이지의 하단에 추가 되며, 페이지의 시작과 함께 스크립트를 실행하도록 하기 위한 목적으로 사용됩니다.
  • RegisterClientScriptBlock(type, string name, string script, [boolean]) : 위의 메서드와 매개변수는 일치합니다.  이 메서드는 페이지의 <body>와 <form>태그 다음부분, 주요내용 시작 전 부분에 스크립트를 추가합니다. 이 메서드로 실행되는 스크립트를 추가할 경우 startup과 마찬가지로 페이지의 시작과 동시에 스크립트가 수행되게 됩니다.
  • RegisterOnSubmitStatement(type, string name, string script) : 페이지에서 submit가 일어날 경우 수행되는 스크립트를 추가하는 메서드입니다. script변수에 <script>태그를 제외한 순수한 스크립트 부분만 저장해야합니다.
  • RegisterHiddenField(string name, string value) : Hidden Control을 동적으로 추가하기 위해 사용되는 메서드입니다.
    다음은 자바스크립트를 동적으로 추가하는 예제입니다.
    string script = @"<script language='javascript'>
                                alert('script');
                            </script>";
    Page.ClientScript.RegisterClientScriptBlock(Page.GetType(), "scriptName", script, false);
* 자바스크립트 함수의 등록과 호출
1. ASPX파일에 수동으로 자바스크립트 함수를 추가한다. 그리고 자바스크립트 함수를 사용할 컨트롤의 OnClientClick속성에 "함수명()"을 기술하면 버튼이 클릭될 때 해당함수가 실행됩니다.
2. 위와 캍이 ClientScript로 자바 함수를 추가한 다음, 사용할 컨트롤의 OnClientClick속성에 "함수명()"을 등록하면 됩니다.
3. 1이나 2의 방법과 같이자바스크립트 함수를 생성한 다음, 사용할 '컨트롤명.Attributes.Add("Onclick", "함수명();");' 을 기술하시면 됩니다.
!! 컨트롤명.Attributes.Add()로 사용자가 원하는 속성을 동적으로 추가하실 수 있습니다. 이 메서드는 클라이언트 사이드 태그의 속성에 사용자가 원하는 속성을 등록할 수 있도록 해줍니다.


ASPX소스코드의 최상단에 기본적으로 Page지시문이 항상 포함되어 있습니다. 이 Page지시문의 구성요소는 다음과 같습니다.
1. Language : ASP.NET프로그래밍 시 사용할 언어를 지정합니다.

2. Debug : 디버그 모드로 페이지를 수행합니다.

3. CodeFile : 이벤트 처리정보가 포함되어있는 CodeBehind파일의 이름을 지정합니다. (C#문법을 사용할 경우 파일명.aspx.cs)

4. Inherits : CodeBehind파일에 포함된 기본 클래스 이름을 지정합니다.

5. Trace : true로 설정할 경우, 페이지 실행과정을 모두 출력합니다.

6. MaintainScrollPositionOnPostback : PostBak이 발생한 경우 스크롤바 위치를 전과 동일하게 할 지 여부를 결정합니다.

7. EnableTheming : 컨트롤들에 테마가 사용될지 여부를 결정합니다. 기본값은 true입니다.

8. ErrorPage : 처리되지 않은 예외가 발생할때 redirect되는 URL을 지정합니다.


by thankee from tistory.com

관련글 더보기