回答
通常什麼人在這裏講的是動態實例和另外一個控制佔位符。
例如
Control ControlInstance = LoadControl("MyControl.ascx");
myPlaceholder.Controls.Add(ControlInstance);
上述實例MyControl.ascx並把它與myPlaceholder的ID的佔位符的內部。
你可以學習有關ASP.Net webforms中動態控件的最佳方法是如何避免它們。在asp.net中的動態控件充滿了陷阱。我幾乎總是推薦以下其中一種替代方法:
- 將合理的固定數量的控件放在頁面上,然後只顯示您需要的控件。
- 找出動態控件的源並將其抽象爲可綁定到中繼器的數據源(數組,ienumerable,list等),即使它只是對Enumerable.Range()的調用。
- 建立一個用戶控件,輸出你想要的html,繞過這個內容的整個「控件」隱喻。
如果你真的必須動態控制的工作,是要保持HTTP的無狀態特性考慮,與asp.net page life cycle一起是非常重要的。每個添加它自己的皺紋使動態控制工作:前者,你需要創建或重新創建控件,每次你做回發,後者,你需要這樣做之前點擊頁面加載事件 - 通常在頁面init或pre-init。
我同意@Joel知道頁面生命週期,無狀態的性質等等,這是可以避免的陷阱。需要注意的主要的事情,我不得不這樣做,主要有:
Page_Init - 初始化是在頁面上這裏,因爲他們是你呈現在頁面上一次的控制。這是非常重要的,因爲ViewState在Init之後運行,並且需要使用與以前渲染方式相同的方法。您可以使用來自@Mitchel的代碼加載控件,即
Control ControlInstance = LoadControl(「MyControl.ascx」); myPlaceholder.Controls.Add(ControlInstance);
Page_Load - 將控件的內容加載到這裏,就像使用任何未動態加載的控件一樣。如果您在page_init中保留了對它們的引用,則它們將在此處可用。
保持這種結構我沒有太多的困難,因爲這似乎是ASP的方式。NET的設計工作,即使MSDN上的所有示例都不這樣做。然後你必須注意的最重要的事情是跟蹤你的頁面在你已經渲染的控件方面的狀態。
在我的情況下,它是採取多頁調查的部分編號,並從數據庫中重新加載問題,所以我所要做的就是跟蹤當前渲染的節號,這並不困難。
說了這麼多,如果你使用動態控件只是爲了顯示和隱藏同一屏幕的不同視圖,那麼我建議你不要使用它們。在這種情況下,我更願意使用用戶控件(隱藏不適當的用戶控件),佔位符來標記尚未呈現的區域,或者分開頁面/視圖等,以便讓頁面承擔單一責任這使得更容易調試和/或從用戶獲得關於他們在哪個頁面上的有用信息。
微軟的文章非常好,但我已經讀過的最好的文章是在波紋管鏈接:
http://www.4guysfromrolla.com/articles/092904-1.aspx
如果您在ASP.NET Web窗體動態控件非常感興趣,我建議您學習DotNetNuke CMS Portal。 DotNetNuke是使用動態控件作爲使用ASP.NET門戶構建動態門戶和頁面的核心功能的最佳案例之一。它可以在www.dotnetnuke.com免費下載。我希望它有幫助
- 1. 回發的動態用戶控件Asp.Net
- 2. 用戶控件中的動態控件
- 3. ASP.NET中的動態控件
- 4. 動態添加ASP.NET Web用戶控件到控件
- 5. 如何動態添加用戶控件中的用戶控件
- 6. asp.net訪問動態控件中的動態控件
- 7. 從在asp.net中動態添加的用戶控件獲取值
- 8. 從動態加載的Web用戶控件(asp.net c#)中的控件訪問值
- 9. 如何在C#中使用asp.net開發動態用戶控件#
- 10. 如何在動態創建的ASP.net控件中動態創建ASP.net控件
- 11. asp.net中的用戶控件
- 12. 動態用戶控件
- 13. 動態用戶控件AddHandler
- 14. 添加用戶動態控制在ASP.NET
- 15. 從動態控件的Asp.net Web基於動態控件
- 16. 在asp.net中的動態控件
- 17. asp.net中的動態控件(Textbox)
- 18. Asp.Net動態控件回發
- 19. ASP.net - 動態顯示控件
- 20. asp.net生成控件動態
- 21. ASP.NET:動態創建控件
- 22. 動態添加ASP.Net控件
- 23. ASP.NET,XSLT和動態控件
- 24. ASP.NET動態用戶控件保存數據的問題
- 25. ASP.NET將屬性傳遞給動態生成的用戶控件
- 26. ASP.NET:如何銷燬動態添加的用戶控件
- 27. 動態加載的ASP.NET用戶控件無法初始化
- 28. 如何動態生成ASP.NET用戶控件的組合?
- 29. 加入asp.net用戶控件動態使用jQuery問題
- 30. ASP.NET MVC中的用戶控件內的ASP.NET控件的命名