2012-07-12 35 views
5

我有一個用戶控件,將動態添加其他用戶控件,取決於用戶的喜好。我在使用重載的LoadControl方法添加控件時遇到問題。我可以使用構造函數動態創建用戶控件嗎?

我試着這樣做:

ddControl = typeof(DropDownControl), new object[] { testData, FilterModel.Models[i] }); 

然而,沒有在ddControl控件進行初始化處理,當我試圖將數據源設置爲它所包含的組合框,它爆炸了。我通過在一個模型和一個數據源,其設置屬性,默認值等是否必須之後創建像

(DropDownControl)LoadControl("~/WebUserControls/DropDownControl.ascx") 

或可以控制以創建LoadModel()方法加載的模型值的構造我通過構造函數以動態聲明的方式完成所有工作?

如果這還不清楚,讓我知道我該如何做到這一點。謝謝!

+0

webforms&usercontrols對構造函數注入過敏。你最好的選擇是添加一個你在'LoadControl'之後調用的方法來完成注入。 – 2013-12-24 04:06:48

回答

0

您可以使用PlaceHolder動態添加這些用戶控件,並通過公開一個方法來執行其他操作,這樣就可以更好地控制所有內容,而不會影響控件的生命週期。

請不要使用構造函數使用屬性和方法。

相關問題