FrmPlaceHolder (자리표시자)
.NET프로그래밍/ASP.NET 3.5 SP1 2009. 10. 8. 10:30 |
==> [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 |