더북(TheBook)

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 메서드를 사용하면 된다.

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