2012-10-14 143 views
0

我正在開發一個ASP.NET動態網站。作爲一個試用版,我嘗試了下面顯示的代碼,它爲Panel1增加了一些控件。當用戶第一次點擊按鈕時,控件將添加到面板中,但當用戶第二次單擊相同的按鈕時,以前的控件將被替換爲新的控件。但是我希望每次用戶單擊按鈕時都會將控件一個接一個地添加。該代碼是這樣的:如何將控件附加到面板?

Control c=Page.LoadControl("DData.ascx"); 
Panel1.Controls.Add(c); 

我也試過

Control c=Page.LoadControl("DData.ascx"); 
Panel1.Controls.AddAt(Panel1.Controls.Count,c); 

但這種替換第一個輸出。請告訴我如何追加這些控件?

+0

在將控件添加到集合之前,是否嘗試給每個控件(例如,使用時間戳或基於Panel1.Controls.Count的ID)賦予唯一名稱? –

+0

您的代碼實際上是正確的。 Controls.Add和Controls.AddAt都應該完成這項工作。我和Adriano在這一個上,你確定你正在爲控件添加獨特的對象/控件嗎? –

+0

這些控件的類型相同,但內部的內容不同。就像這裏在StackOverflow上的評論一樣。 –

回答

0

正如你所期望的,這個附加一個單一的控制:

Control c = Page.LoadControl("DData.ascx"); 
Panel1.Controls.Add(c); 

,你以這種方式希望您可以將盡可能多的控制。

但是,您需要跟蹤您以某種持久/有狀態方式(數據庫,Session,ViewState等)添加的控件。

每當頁面加載時,您需要重建控制樹

見我的回答類似的問題:

+0

你能告訴我一些關於ViewState的知識嗎?我是新的.NET –

+0

當然。我添加了幾個鏈接到我的答案,包括一個ViewState。 –

相關問題