2012-07-12 65 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动态添加这些用户控件,并通过公开一个方法来执行其他操作,这样就可以更好地控制所有内容,而不会影响控件的生命周期。

请不要使用构造函数使用属性和方法。

相关问题