[英]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);
我不會將其直接添加到頁面中,而是使用PlaceHolders
或Panels
作為容器控件。 您需要最遲在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.