5

我有一个用户控件,它将根据用户的喜好动态地向其中添加其他用户控件。我在使用重载的 LoadControl 方法添加控件时遇到问题。

我试过这样做:

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

但是,ddControl 中的任何控件都没有被初始化,当我尝试将数据源设置为它包含的组合框时,它爆炸了。我将模型和数据源传递给设置属性、默认值等的构造函数。在创建控件后,我是否必须创建一个 LoadModel() 方法来加载模型值

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

或者我可以在动态声明它的同时以某种方式通过构造函数完成这一切吗?

如果不清楚,请告诉我如何做到这一点。谢谢!

4

1 回答 1

0

您可以使用PlaceHolder动态添加这些用户控件并通过公开方法来执行其他操作,这样您就可以更好地控制所有内容,而不会干扰控件的生命周期。

不要使用构造函数,而是使用属性和方法。

于 2014-01-22T02:54:28.213 回答