PlaceHolder在MSDN中就是:ASP.NET PlaceHolder Web 服务器控件使您能够将空容器控件放置到页上,然后在运行时动态地将子元素添加到该容器中。它是一个空容器,因此它可以承载其他的控件,它和Panel具有类似的功能。
下面通过两个例子来加深对它的理解.
示例1:
1、在页面添加一个PlaceHolder控件;
2、制作用户控件DynamicUserControl.ascx
3、添加按钮并添加用户代码:
View Code
static bool Holded = true; //可以使用session来替代 protected void btnLoadUserControl_Click(object sender, EventArgs e) { if (Holded == true) { Control c1 = LoadControl("DynamicUserControl.ascx"); PlaceHolder1.Controls.Add(c1); Holded = false; btnLoadUserControl.Text = "隐藏用户控件"; } else { PlaceHolder1.Controls.Clear(); Holded = true; btnLoadUserControl.Text = "加载用户控件"; } }
如果反复点击按钮,将看到用户控件的出现与消失
示例2
《1》在页面中添加一个PlaceHolder控件
《2》添加按钮并添加用户代码
View Code
protected void btnLoadUserControl2_Click(object sender, EventArgs e) { Button btn1 = new Button(); btn1.Text = "我在上面按钮按下后创建,并显示出来,"; PlaceHolder2.Controls.Add(btn1); btn1.Text += "显示我的容器的ID叫PlaceHolder2!"; }