![](http://yeziwenwen.blog.51cto.com/images/editer/InBlock.gif)
1using System;
![](http://yeziwenwen.blog.51cto.com/images/editer/InBlock.gif)
2using System.Collections;
![](http://yeziwenwen.blog.51cto.com/images/editer/InBlock.gif)
3using System.Configuration;
![](http://yeziwenwen.blog.51cto.com/images/editer/InBlock.gif)
4using System.Data;
![](http://yeziwenwen.blog.51cto.com/images/editer/InBlock.gif)
5using System.Linq;
![](http://yeziwenwen.blog.51cto.com/images/editer/InBlock.gif)
6using System.Web;
![](http://yeziwenwen.blog.51cto.com/images/editer/InBlock.gif)
7using System.Web.Security;
![](http://yeziwenwen.blog.51cto.com/images/editer/InBlock.gif)
8using System.Web.UI;
![](http://yeziwenwen.blog.51cto.com/images/editer/InBlock.gif)
9using System.Web.UI.HtmlControls;
![](http://yeziwenwen.blog.51cto.com/images/editer/InBlock.gif)
10using System.Web.UI.WebControls;
![](http://yeziwenwen.blog.51cto.com/images/editer/InBlock.gif)
11using System.Web.UI.WebControls.WebParts;
![](http://yeziwenwen.blog.51cto.com/images/editer/InBlock.gif)
12using System.Xml.Linq;
![](http://yeziwenwen.blog.51cto.com/images/editer/InBlock.gif)
13
![](http://yeziwenwen.blog.51cto.com/images/editer/InBlock.gif)
14public partial class DynamicLoadControl : System.Web.UI.Page
![](http://yeziwenwen.blog.51cto.com/images/editer/InBlock.gif)
15{
![](http://yeziwenwen.blog.51cto.com/images/editer/InBlock.gif)
16 protected void Page_Load( object sender, EventArgs e)
![](http://yeziwenwen.blog.51cto.com/images/editer/InBlock.gif)
17 {
![](http://yeziwenwen.blog.51cto.com/images/editer/InBlock.gif)
18
![](http://yeziwenwen.blog.51cto.com/images/editer/InBlock.gif)
19 }
![](http://yeziwenwen.blog.51cto.com/images/editer/InBlock.gif)
20 //这个方法先于page_load之前执行,也在控件初始化前执行
![](http://yeziwenwen.blog.51cto.com/images/editer/InBlock.gif)
21 protected void Page_Init( object sender, EventArgs e)
![](http://yeziwenwen.blog.51cto.com/images/editer/InBlock.gif)
22 {
![](http://yeziwenwen.blog.51cto.com/images/editer/InBlock.gif)
23 //从送来的参数中,判断用户控件是否已经加载,"Dynamic_UserControl_Hidden1"是个标志,
![](http://yeziwenwen.blog.51cto.com/images/editer/InBlock.gif)
24 //为true时,代表用户控件存在,初次加载页面时,表示是false,故没有用户控件出现在网页上
![](http://yeziwenwen.blog.51cto.com/images/editer/InBlock.gif)
25 if (Request.Params[ "Dynamic_UserControl_Hidden1"] == " true")
![](http://yeziwenwen.blog.51cto.com/images/editer/InBlock.gif)
26 LoadDynamicUserControl();
![](http://yeziwenwen.blog.51cto.com/images/editer/InBlock.gif)
27
![](http://yeziwenwen.blog.51cto.com/images/editer/InBlock.gif)
28 }
![](http://yeziwenwen.blog.51cto.com/images/editer/InBlock.gif)
29 //点击按钮出现用户自定义控件
![](http://yeziwenwen.blog.51cto.com/images/editer/InBlock.gif)
30 protected void Button1_Click( object sender, EventArgs e)
![](http://yeziwenwen.blog.51cto.com/images/editer/InBlock.gif)
31 {
![](http://yeziwenwen.blog.51cto.com/images/editer/InBlock.gif)
32 //当用户自定义控件(标志为true)存在时,就移除到自定义控件,同时标志改为false。
![](http://yeziwenwen.blog.51cto.com/images/editer/InBlock.gif)
33 if (Request.Params[ "Dynamic_UserControl_Hidden1"] == "true")
![](http://yeziwenwen.blog.51cto.com/images/editer/InBlock.gif)
34 {
![](http://yeziwenwen.blog.51cto.com/images/editer/InBlock.gif)
35 UpdatePanel1.ContentTemplateContainer.Controls.Remove(UpdatePanel1.ContentTemplateContainer.FindControl( "WebUserControl1"));
![](http://yeziwenwen.blog.51cto.com/images/editer/InBlock.gif)
36 HtmlInputHidden hidden = (HtmlInputHidden)UpdatePanel1.ContentTemplateContainer.FindControl( "Dynamic_UserControl_Hidden1");
![](http://yeziwenwen.blog.51cto.com/images/editer/InBlock.gif)
37 hidden.Value = "false";
![](http://yeziwenwen.blog.51cto.com/images/editer/InBlock.gif)
38
![](http://yeziwenwen.blog.51cto.com/images/editer/InBlock.gif)
39 }
![](http://yeziwenwen.blog.51cto.com/images/editer/InBlock.gif)
40 //否则就加载用户自定义控件
![](http://yeziwenwen.blog.51cto.com/images/editer/InBlock.gif)
41 else
![](http://yeziwenwen.blog.51cto.com/images/editer/InBlock.gif)
42 LoadDynamicUserControl();
![](http://yeziwenwen.blog.51cto.com/images/editer/InBlock.gif)
43 }
![](http://yeziwenwen.blog.51cto.com/images/editer/InBlock.gif)
44 //加载用户自定义控件
![](http://yeziwenwen.blog.51cto.com/images/editer/InBlock.gif)
45 private void LoadDynamicUserControl()
![](http://yeziwenwen.blog.51cto.com/images/editer/InBlock.gif)
46 {
![](http://yeziwenwen.blog.51cto.com/images/editer/InBlock.gif)
47 //当Updatepanel中没有用户控件时
![](http://yeziwenwen.blog.51cto.com/images/editer/InBlock.gif)
48 if (UpdatePanel1.ContentTemplateContainer.FindControl( "WebUserControl1") == null)
![](http://yeziwenwen.blog.51cto.com/images/editer/InBlock.gif)
49 {
![](http://yeziwenwen.blog.51cto.com/images/editer/InBlock.gif)
50 //根据指定的WebUserControl.ascx路径加载控件WebUserControl1
![](http://yeziwenwen.blog.51cto.com/images/editer/InBlock.gif)
51 Control c = LoadControl( "WebUserControl.ascx");
![](http://yeziwenwen.blog.51cto.com/images/editer/InBlock.gif)
52 c.ID = "WebUserControl1";
![](http://yeziwenwen.blog.51cto.com/images/editer/InBlock.gif)
53 //找到标志将其值改为true
![](http://yeziwenwen.blog.51cto.com/images/editer/InBlock.gif)
54 HtmlInputHidden hidden =(HtmlInputHidden ) UpdatePanel1.ContentTemplateContainer.FindControl( "Dynamic_UserControl_Hidden1");
![](http://yeziwenwen.blog.51cto.com/images/editer/InBlock.gif)
55 hidden.Value = "true";
![](http://yeziwenwen.blog.51cto.com/images/editer/InBlock.gif)
56 //在Updatepanel中加入用户控件
![](http://yeziwenwen.blog.51cto.com/images/editer/InBlock.gif)
57 UpdatePanel1.ContentTemplateContainer.Controls.Add(c);
![](http://yeziwenwen.blog.51cto.com/images/editer/InBlock.gif)
58 }
![](http://yeziwenwen.blog.51cto.com/images/editer/InBlock.gif)
59 }
![](http://yeziwenwen.blog.51cto.com/images/editer/InBlock.gif)
60
![](http://yeziwenwen.blog.51cto.com/images/editer/InBlock.gif)
61}