LiteralControl 类
ASP.NET 将所有不需要服务器端处理的 HTML 元素和可读文本编译为该类的实例。例如,在开始标记中不包含 runat="server" 属性/值对的 HTML 元素将被编译为 LiteralControl 对象。LiteralControl 对象不维护视图状态,因此必须针对每个请求重新创建 LiteralControl 对象的内容。
文本控件的行为与文本容纳器一样,这意味着可以从文本控件提取文本,并通过父服务器控件的 Controls 属性从父服务器控件的 ControlCollection 集合中移除文本控件。因此,当开发从 LiteralControl 类派生的自定义控件时,确保由控件自己执行任何所需的预处理步骤,而不是使用对 LiteralControl.Render 方法的调用来完成这些操作。通常,都会这样做以提高 Web 应用程序的响应时间。
可以以编程方式分别使用 ControlCollection.Add 或 ControlCollection.Remove 方法,从页或服务器控件添加或移除文本控件。
PlaceHolder 控件用作存储动态添加到网页的服务器控件的容器。PlaceHolder 控件不产生任何可见输出并且只能用作网页上其他控件的容器。可以使用 Control..::.Controls 集合添加、插入或移除 PlaceHolder 控件中的控件。
例子:
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);
}