簡體   English   中英

如何將代碼中創建的控件放在頁面上?

[英]How do I place a control created in the code behind on a page?

protected void Page_Load(object sender, EventArgs e)
{

Label myLabel = new Label();
myLabel.Text = "Testing 1 2 3";
}

如果我在后面的代碼中創建了這個Label對象,並且在主頁面上沒有<asp:Label>標簽,那么如何將此Label放在頁面的某個位置?

我想根據數據庫中的信息動態創建控件。 從那里,我想將控件放在網頁上。 我無法為它們預定義位置,因為控件的數量和類型將會改變。

最好的方法是什么?

如果我的頁面上已有某些內容(例如表格),並且我希望在表格結束后放置控件,該怎么辦?

您必須將其添加到頁面的控件集合中。

this.Controls.Add(myLabel);

我不會將其直接添加到頁面中,而是使用PlaceHoldersPanels作為容器控件。 您需要最遲在page_load中的每個回發上重新創建動態創建的控件,其ID與之前相同(重新加載ViewState和觸發事件)。

您應該使用CSS來控制控件的布局。

另一種方法是使用像Repeater這樣的Web數據綁定控件 ,它更容易並自動維護控件及其狀態。

如果您使用占位符,則可以根據需要添加任意數量的控件。 如果為每個控件分配一個CSS,則可以輕松地將控件放在頁面上的任何位置。

Label myLabel = new Label();
myLabel.Text = "Testing 1 2 3";
myLabel.cssClass ="myClass1"
Label myLabel2 = new Label();
myLabel2.Text = "Testing 4 5 6";
myLabel2.cssClass ="myClass2"
plHolder.controls.add(myLabel)
plHolder.controls.add(myLabel2)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM