2012-01-03 87 views
0

我有一個asp.net項目,在我的設計頁面中,我有一些名稱爲aLabel0,aLabel1,aLabel2 ... aLabel9的asp:Label對象。如果我不想從我的aspx.cs頁面動態創建它們並將它們添加到像asp:Panel這樣的容器中,是否有任何方法將它們動態地從aspx頁面加載到aspx.cs頁面?動態加載對象c#

事情是這樣的:

for(int i = 0; i < 10; i++) 
{ 
    Label tempLabel = LoadDynamically("aLabel" + i.ToString()); 
} 
+0

爲什麼不把它們添加到你的代碼後面(aspx.cs)? – jrummell 2012-01-03 17:56:00

+0

我在面板中有一些asp控件(labels-textboxes-literals),我想重複它們並從javascript(使用ClientID)調用它們。動態創建它們更合適,但我發現將它們添加到我的aspx表單更容易。我的問題是在代碼後面添加javascript事件(使用aLabel0.Attributes.Add(eventName,eventFunction)方法)編寫foreach控件的代碼太多。我的查詢的答案是FindControl方法。 – 2012-01-03 18:47:46

回答

0

你可以使用Control.FindControl

var label = panel.FindControl("aLabel" + i.ToString()) as Label; 
0

聽起來像是一個ASP工作:直放站。如果你覺得你必須(你不),你也可以在aspx中定義中繼器的數據源。然後,只需在與各自的值標籤創建注入

0

如果你問如何動態創建控件,你可以做一些事情,像這樣:

Label lb = new Label(); 
lb.ID = "aLabel0"; 
lb.Text = "I'm label #0"; 
Page.Controls.Add(lb); 

前三行創建標籤和最後一行添加它的容器。在這種情況下,我使用Page,但您可以使用任何容器控件。