2009-08-30 49 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

相關問題