더북(TheBook)

4. FrmPlaceHolder.aspx.cs 파일을 열고 다음과 같이 코드를 작성한다. ASP.NET을 사용하면 동적으로 컨트롤을 생성해서 특정 영역에 삽입해서 사용할 수 있고, 관련된 이벤트 처리기도 구현할 수 있다.


using System;
using System.Web.UI.WebControls;

namespace DevStandardControl
{
  public partial class FrmPlaceHolder : System.Web.UI.Page
  {
      protected void Page_Load(object sender, EventArgs e)
      {
          // [1] 버튼 개체 하나 생성
          Button btn1 = new Button();
          btn1.ID = “btn1”;
          btn1.Text = “버튼 1”;
          btn1.Click += btn_Click;
          // [2] PlaceHolder에 프로그래밍 방식으로 버튼 추가
          ctlPlaceHolder.Controls.Add(btn1);
          
          Literal ltr = new Literal();
          ltr.Text = “<br />“;
          ctlPlaceHolder.Controls.Add(ltr);
          
          Button btn2 = new Button();
          btn2.ID = “btn2”;
          btn2.Text = “버튼 2”;
          btn2.Click += btn_Click;
          ctlPlaceHolder.Controls.Add(btn2);
      }
      
      private void btn_Click(object sender, EventArgs e)
      {
          lblDisplay.Text =
              (sender as Button).Text + ” 버튼이 클릭되었습니다.<br />“;
          
          Button btnCurrent = sender as Button;
          lblDisplay.Text += btnCurrent.ID + ” 버튼입니다.<br />“;
          
          // 부모 컨트롤(컨테이너)로부터 자식 컨트롤을 읽어 오는 교과서다운 코드
          lblDisplay.Text +=
              ((Button)ctlPlaceHolder.FindControl(btnCurrent.ID)).Text
              + ” 버튼이겠죠?”;
      }
  }
}

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