5. FrmPageLoad.aspx의 코드 보기를 선택하고 다음과 같이 코드를 작성한다. 지면 관계상 네임스페이스 선언부는 현재 페이지에서 사용하는 것만 나열했다. 페이지 로드 시 동적으로 제목을 변경하거나 스타일시트를 적용하는 방법을 볼 수 있다. 또한, 버튼 클릭 시 동적으로 자바스크립트 코드를 만들어서 실행할 수도 있다.


    using System;
    using System.Web.UI;
    using System.Web.UI.HtmlControls; // 네임스페이스 추가
    using System.Web.UI.WebControls;
    
    namespace DevASPNET
    {
      public partial class FrmPageLoad : System.Web.UI.Page
      {
          protected void Page_Load(object sender, EventArgs e)
          {
              // 동적으로 페이지의 제목을 변경하는 세 가지 방법
              Title = "제목이 바뀝니다.";
              Page.Title = "제목이 출력됩니다.";
              Page.Header.Title = "Page 클래스";
              
              // 외부 스타일시트 정의
              HtmlLink objHtmlLink = new HtmlLink();
              objHtmlLink.Href = "DevASPNET.css";
              objHtmlLink.Attributes.Add("rel", "stylesheet");
              objHtmlLink.Attributes.Add("type", "text/css");
              
              // Head 태그 정의, 외부스타일과 메타태그 등록
              HtmlHead objHtmlHead = Page.Header;
              objHtmlHead.Controls.Add(objHtmlLink);
              // 동적으로 페이지에 스타일시트를 적용하는 방법
              Style objButtonStyle = new Style();
              objButtonStyle.ForeColor =
                  System.Drawing.Color.Navy; // color:Navy;
              objButtonStyle.Font.Size = 9; // font-size:9pt
              objButtonStyle.Font.Name = "Verdana";
              Page.Header.StyleSheet.RegisterStyle(
                  objButtonStyle, null);
              this.btnNewLoad.CssClass =
                  objButtonStyle.RegisteredCssClass;
              this.btnPostBack.CssClass =
                  objButtonStyle.RegisteredCssClass;
              
              Style objDivStyle = new Style();
              objDivStyle.ForeColor = System.Drawing.Color.Blue;
              objDivStyle.Font.Size = 9;
              objDivStyle.Font.Name = "Verdana";
              objDivStyle.Font.Italic = true;
              Page.Header.StyleSheet.CreateStyleRule(
                  objDivStyle, null, "body, div");
              
              // 버튼을 클릭하면 [1][2]번 코드는 실행되지 않는다.
              if (!Page.IsPostBack)
              {
                  Response.Write(
                      "[1] 폼이 처음 로드할 때에만 실행<br />");
              }
              if (Page.IsPostBack == false)
              {
                  Response.Write(
                      "[2] 폼이 처음 로드할 때에만 실행<br />");
              }
              Response.Write(
                  "[3] 폼이 로드할 때마다 실행<br />");
          }
          
          protected void btnPostBack_Click(object sender, EventArgs e)
          {
              string strJs = @"
                <script>
                window.alert('포스트백 됨');
                </script>
                ";
              ClientScript.RegisterClientScriptBlock(
                  this.GetType(), "MyScript", strJs);
          }
          
          protected void btnNewLoad_Click(object sender, EventArgs e)
          {
              Response.Redirect("FrmPageLoad.aspx");
          }
      }
    }
    

     

    ASP.NET 페이지에서 자바스크립트 코드를 실행하려면 ClientScript 클래스의 RegisterClient ScriptBlock 메서드를 사용하면 된다.

    신간 소식 구독하기
    뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.