2009-08-30 105 views
0

当我动态地创建一个控件并将其添加到页面的控件集合时,我得到以下错误。这是怎么回事?如何动态地将控件添加到页面?当我尝试添加一个动态创建的控件到一个asp我得到一个错误

Control 'ctl02' of type 'TextBox' must be placed inside a form tag with runat=server. 

我做这样的事情:

protected override void OnPreRender(EventArgs e) 
{ 
    base.OnPreRender(e); 
    double total = (double)ViewState[cKeyTotal]; 
    TextBox txt = new TextBox(); 
    txt.Text = "hello world"; 

    this.Controls.Add(txt); 
} 

回答

0

您不必在页面上的表单。该控制需要在一个内部。

添加一种形式:

<form runat='server' id='form1'> 
    ... 
</form> 

而生活应该是不错的。

+0

我不明白。我正在研究一个标准的Default.aspx的代码隐藏,它确实有你在上面写的html。还有其他东西丢失 – MedicineMan 2009-08-30 22:33:28

+1

我明白了。问题是this.Controls.Add()不会将控件添加到form1。如果你改变上面的代码,让form1.Controls.Add(),那么一切都很开心。 – MedicineMan 2009-08-30 22:35:35

相关问题