2011-05-08 42 views
0
protected void Page_Load(object sender, EventArgs e) 
{ 
    Button quote = new Button(); 
    Button reply = new Button(); 
    Button edit = new Button(); 
    Label UsersMessage = new Label(); 
    UsersMessage.Text = "Users Message: question was submitted"; 


    Table tabl = new Table(); 
    TableRow tablRow=new TableRow(); 
    TableCell tablCell=new TableCell(); 



    tablCell.Controls.Add(quote); 
    tablCell.Controls.Add(reply); 
    tablCell.Controls.Add(edit); 
    tablCell.Controls.Add(UsersMessage); 

    tablRow.Cells.Add(tablCell); 
    tabl.Rows.Add(tablRow); 
} 

我想添加一個表格,其中包含按鈕和標籤的單元格。爲什麼沒有添加,當我啓動頁面? (當我查看它時,源代碼中沒有添加任何內容)將控件添加到頁面?

回答

2

您還可以到Table控制自身添加到頁面的形式:

Page.Form.Controls.Add(tabl); 
+0

類型「按鈕」控制「ctl02」必須放在與RUNAT =服務器的表單標籤內。 - 給我一個例外 – 2011-05-08 07:37:14

+0

@Dmitry,是真的,因爲表中有按鈕,它應該被添加到頁面的表格而不是頁面本身。回答更新,爲錯誤抱歉。 – 2011-05-08 07:39:22

+0

謝謝,你的回答解決了這個問題。關於如何控制我在表格單元格內添加的所有項目的位置的任何想法。我希望按鈕出現在單元格的底部,並在單元格頂部的標籤 – 2011-05-08 07:45:21

1

您沒有將該表添加到頁面控件集合中。

this.Controls.Add(tabl); 

或者,如果你有一個特定的控件你想添加表,使用它。

2

你不控件添加到網頁本身)

controlContainer.Controls.Add(tabl); 

會做的伎倆

其中controlContainer是您在ASPX上創建的控件,如asp:placeholderasp:panel。通過這種方式,您可以定義控件必須以特定方式出現的位置。

重要說明:但是,當您以這種方式添加控件時,您將進入令人擔憂的區域。如果您打算使用postback的按鈕,則此方法不會像上面顯示的那樣工作。請介意/谷歌/冰條款asp.net page-lifecycleviewstateeventwirecontrol-id's等等...... a nice tutorial is here

+0

當我添加控件時引發異常...類型'按鈕'的控件'ctl02'必須放置在一個窗體標籤與runat =服務器。 – 2011-05-08 07:41:52

+0

當然:您必須將runat = server屬性添加到您的controlscontainer標記中,以便: 2011-05-08 07:55:28