[ASP.NET] StandardControl : PlaceHolder (동적 오브젝트 생성)
====================================================
FrmPlaceHolder.aspx
====================================================
<%@ Page Language="C#" AutoEventWireup="true"
CodeFile="FrmPlaceHolder.aspx.cs" Inherits="FrmPlaceHolder" %>
자리표시자 : 플레이스홀더 컨트롤
====================================================
FrmPlaceHolder.aspx.cs
====================================================
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
public partial class FrmPlaceHolder : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
this.Literal1.Text = "안녕
방가
"; //[1] 동적으로 컨트롤 생성 : 버튼 개체 하나 생성 Button btnHi = new Button(); btnHi.ID = "btn"; btnHi.Text = "클릭하세요!"; // 이벤트 처리기 : 아래 코드가 C#2.0의 무명(Anonymous) 메서드 기능 //btnHi.Click += new EventHandler(btn_Clicked); //간단한것을 아래처럼 바로 실행하도록 btnHi.Click += delegate (object obj, EventArgs arg) { lblDisplay.Text = "무명메서드로 호출"; }; /* btnHi.Click += delegate(object ss, EventArgs ee) { Response.Write("클릭됨..."); btn_Clicked(ss, ee); // 또 다른 이벤트 처리기 실행 }; */ //[2] PlaceHolder에 프로그래밍 방식으로 버튼 추가 ctlPlaceHolder.Controls.Add(btnHi); } protected void btn_Clicked(object sender, EventArgs e) { this.lblDisplay.Text = "버튼이 클릭되었습니다."; } protected void btnGetText_Clicked(object sender, EventArgs e) { // 부모 컨트롤(컨테이너)로부터 자식 컨트롤 읽어오는 교과서다운 코드... this.lblDisplay.Text = ((Button)this.ctlPlaceHolder.FindControl("btn")).Text; } }
방가
"; //[1] 동적으로 컨트롤 생성 : 버튼 개체 하나 생성 Button btnHi = new Button(); btnHi.ID = "btn"; btnHi.Text = "클릭하세요!"; // 이벤트 처리기 : 아래 코드가 C#2.0의 무명(Anonymous) 메서드 기능 //btnHi.Click += new EventHandler(btn_Clicked); //간단한것을 아래처럼 바로 실행하도록 btnHi.Click += delegate (object obj, EventArgs arg) { lblDisplay.Text = "무명메서드로 호출"; }; /* btnHi.Click += delegate(object ss, EventArgs ee) { Response.Write("클릭됨..."); btn_Clicked(ss, ee); // 또 다른 이벤트 처리기 실행 }; */ //[2] PlaceHolder에 프로그래밍 방식으로 버튼 추가 ctlPlaceHolder.Controls.Add(btnHi); } protected void btn_Clicked(object sender, EventArgs e) { this.lblDisplay.Text = "버튼이 클릭되었습니다."; } protected void btnGetText_Clicked(object sender, EventArgs e) { // 부모 컨트롤(컨테이너)로부터 자식 컨트롤 읽어오는 교과서다운 코드... this.lblDisplay.Text = ((Button)this.ctlPlaceHolder.FindControl("btn")).Text; } }