아래와 같이 웹 폼 하나에 웹 사용자 정으 컨트롤 두개를 같은 폴더에 두고, 웹 폼에서 현재시간의 초가 짝수이면, First.ascx가 로드되고, 홀수이면, Second.ascx 파일이 로드되는 예제를 만들어 보았다.
FrmLoadControl.aspx
First.ascx
Second.ascx
FrmLoadControl.aspx 코드 샘플
1 <%@ Page Language="C#" AutoEventWireup="true" CodeFile="FrmLoadControl.aspx.cs" Inherits="Qna_FrmLoadControl" %>
2
3 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
4
5 <html xmlns="http://www.w3.org/1999/xhtml">
6 <head runat="server">
7 <title></title>
8 </head>
9 <body>
10 <form id="form1" runat="server">
11 <div>
12 아래 영역에 UserControl 동적 생성
13 <asp:PlaceHolder ID="PlaceHolder1" runat="server"></asp:PlaceHolder>
14 </div>
15 </form>
16 </body>
17 </html>
18
FrmLoadControl.aspx.cs 코드 샘플
1 using System;
2 using System.Web.UI;
3
4 public partial class Qna_FrmLoadControl : System.Web.UI.Page
5 {
6 protected void Page_Load(object sender, EventArgs e)
7 {
8 if (DateTime.Now.Second % 2 == 0)
9 {
10 this.PlaceHolder1.Controls.Add( (UserControl)Page.LoadControl("First.ascx") );
11 }
12 else
13 {
14 this.PlaceHolder1.Controls.Add((UserControl)Page.LoadControl("Second.ascx"));
15 }
16 }
17 }