从代码后面添加文本框服务器控件?

时间:2011-05-30 15:41:36

标签: asp.net

我正在尝试从代码隐藏中向我的页面添加一个新的文本框服务器控件。

TextBox txt=new TextBox();
txt.Width=100;
txt.Height=100;

Page.Controls.Add(txt);

当我编写以下代码时,抛出此错误:

  

“TextBox”类型的“控制'ctl02'必须放在带有runat = server的表单标记内。”

抛出此错误的原因是什么?该怎么做?

2 个答案:

答案 0 :(得分:5)

在表单中,您可以将占位符放在要显示此文本框的位置:

<form runat="server">
    ...
    <asp:PlaceHolder ID="holder" runat="server" />
    ...
</form>

然后将文本框添加到此占位符:

TextBox txt = new TextBox(); 
txt.Width = 100; 
txt.Height = 100;
holder.Controls.Add(txt);

答案 1 :(得分:4)

错误消息告诉您必须将TextBox控件添加到页面中的<form>元素而不是页面本身。尝试:

Page.Form.Controls.Add(txt);