홈 · 개발 참고자료

개발 참고자료

[ASP.NET] StandardControl : PlaceHolder (동적 오브젝트 생성)

작성자
왕희복
작성일
2016-01-21
조회
8483
분류
ASP.NET
==================================================== 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; } }