==> [FrmPlaceHolder.aspx] 소스 및 디자인

 

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="FrmPlaceHolder.aspx.cs" Inherits="FrmPlaceHolder" %>

 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

 

<html xmlns="http://www.w3.org/1999/xhtml">

<head runat="server">

    <title>자리표시자</title>

</head>

<body>

    <form id="form1" runat="server">

    <div>

   

        텍스트/HTML이 들어올자리 :

        <asp:Literal ID="Literal1" runat="server"></asp:Literal>

       

        <hr />

       

        서버컨트롤이 들어올자리 :    

        <asp:PlaceHolder ID="PlaceHolder1" runat="server"></asp:PlaceHolder>

       

        <br />

        <asp:Label ID="Label1" runat="server" Text=""></asp:Label>

       

        <hr />

        <asp:Button ID="btnGetText" runat="server"

            Text="동적버튼의 텍스트를 읽어오자." onclick="btnGetText_Click" />

       

    </div>

    </form>

</body>

</html>

 

 


 

 

-------------------------------------------------------------------------------------

 


==> [FrmPlaceHolder.aspx.cs] 소스

 

using System;

using System.Collections.Generic;

using System.Linq;

using System.Web;

using System.Web.UI;

using System.Web.UI.WebControls;

 

public partial class FrmPlaceHolder : System.Web.UI.Page

{

    protected void Page_Load(object sender, EventArgs e)

    {

        this.Literal1.Text = "안녕<br />방가<br />";

 

        // 동적으로 컨트롤 생성

        Button btn = new Button();

 

        // 버튼의 주요 속성 지정

        btn.ID = "btnClick";

        btn.Text = "클릭하세요.";

 

        // 이벤트 처리기 구현

        btn.Click +=

            //new EventHandler(btn_Click);

            delegate(object obj, EventArgs args)

            {

                this.Label1.Text = "무명메서드로 출력";

            };

 

        // PlaceHolder에 추가

        this.PlaceHolder1.Controls.Add(btn);

 

        Label lbl = new Label();

        lbl.ID = "lblDisplay";

        lbl.Text = "동적으로 만들어진 레이블";

        this.PlaceHolder1.Controls.Add(lbl);

    }

 

    //void btn_Click(object sender, EventArgs e)

    //{

    //    this.Label1.Text = "버튼이 클릭되었습니다.";

    //}   

 

    protected void btnGetText_Click(object sender, EventArgs e)

    {

        // PlaceHolder 'btnClick'개체를 찾아서 '버튼'형태로 변환 후 'Text'속성 요청

        Label1.Text = ((Button)this.PlaceHolder1.FindControl("btnClick")).Text;

        ((Label)this.PlaceHolder1.FindControl("lblDisplay")).Text = DateTime.Now.ToShortTimeString();

    }

}

  

 

-------------------------------------------------------------------------------------

 


[실행결과]

--> 실행 후 첫 화면. 아래그림의 웹 페이지에서 '클릭하세요'버튼을 마우스로 클릭하면...





--> 바로 아랫줄의 "레이블"에 텍스트("무명메서드로 출력")가 출력된다. 그 다음에 아래그림의 "동적버튼의 텍스트를 읽어오자"버튼을 마우스로 클릭하면...




--> 위의그림에서 "동적으로 만들어진 레이블"이라고 텍스트가 쓰여져 있던 "PlaceHolder 컨트롤"의 위치에 현재시간이 출력됨과 동시에, 바로위의그림에서 "무명메서드로 출력"이라고 텍스트가 출력되었던 "레이블"도 '클릭하세요.'버튼의 텍스트인 "클릭하세요."라고 텍스트가 변경되어 출력되었다.
 

 

 


 

'.NET프로그래밍 > ASP.NET 3.5 SP1' 카테고리의 다른 글

FrmFileUpload  (0) 2009.10.08
FrmHtml  (0) 2009.10.08
FrmPanel  (0) 2009.10.08
FrmXml (XML 컨트롤)  (0) 2009.10.08
FrmAdRotator (광고 컨트롤)  (0) 2009.10.07
Posted by holland14
: