您的位置:首页 > 编程语言 > ASP

ASP.NET - PlaceHolder Web 服务器控件概述

2009-11-25 09:39 399 查看
PlaceHolder 控件使您可以将空容器控件放置到页上,然后在运行时动态地将子元素添加到该容器中。

一、背景
PlaceHolder Web 服务器控件使您可以将空容器控件放置到页内,然后在运行时动态添加、删除或依次通过子元素。该控件只呈现其子元素;它不呈现自身的任何标记。
例如,您可能想要根据用户选择的选项,在网页上显示数目可变的按钮。在该情况下,用户不面对可能导致混乱的选择,即那些要么不可用、要么与其自身需要无关的选择。可以动态创建按钮,并将它们添加为 PlaceHolder 控件的子级。

二、如何:向 Web 窗体页添加 PlaceHolder Web 服务器控件
1、向 Web 窗体页添加 PlaceHolder Web 服务器控件
从工具箱的“标准”选项卡中,将 PlaceHolder 控件拖到页面上。

2、在运行时向 PlaceHolder 控件添加子控件
·创建要添加到 PlaceHolder 控件中的某个控件的实例。
·调用 PlaceHolder 控件的 Controls 属性的 Add 方法,并将在上一步中所创建的实例传递给它。
下面的示例演示如何添加两个 Button 控件作为 PlaceHolder 控件的子级。此代码还添加了 Literal 控件,以便在按钮之间添加一个 <br> 标记。
void Page_Load(object sender, EventArgs e)
{
Button Button1 = new Button();
Button1.Text = "Button 1";
PlaceHolder1.Controls.Add(Button1);

Literal Literal1 = new Literal();
Literal1.Text = "<br>";
PlaceHolder1.Controls.Add(Literal1);

Button Button2 = new Button();
Button2.Text = "Button 2";
PlaceHolder1.Controls.Add(Button2);
}

三、PlaceHolder 类
将 PlaceHolder 控件用作存储动态添加到网页的服务器控件的容器。PlaceHolder 控件不产生任何可见输出并且只能用作网页上其他控件的容器。可以使用 Control.Controls 集合添加、插入或移除 PlaceHolder 控件中的控件。
示例
下面的代码示例演示如何将控件动态添加到 PlaceHolder 控件。
<%@ Page Language="C#" AutoEventWireup="True" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html >
<head>
<title>PlaceHolder Example</title>
<script runat="server">

void Page_Load(Object sender, EventArgs e)
{
HtmlButton myButton = new HtmlButton();

myButton.InnerText = "Button 1";
PlaceHolder1.Controls.Add(myButton);

myButton = new HtmlButton();
myButton.InnerText = "Button 2";
PlaceHolder1.Controls.Add(myButton);

myButton = new HtmlButton();
myButton.InnerText = "Button 3";
PlaceHolder1.Controls.Add(myButton);

myButton = new HtmlButton();
myButton.InnerText = "Button 4";
PlaceHolder1.Controls.Add(myButton);
}

</script>

</head>

<body>
<form id="form1" runat="server">
<h3>PlaceHolder Example</h3>

<asp:PlaceHolder id="PlaceHolder1"
runat="server"/>
</form>
</body>
</html>

四、PlaceHolderControlBuilder 类
与分析器进行交互以生成 PlaceHolder 控件。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: