asp.net - 我可以使用构造函数动态创建用户控件吗?

标签 asp.net dynamic .net-3.5 user-controls

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

我尝试这样做:

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

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

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

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

最佳答案

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

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

关于asp.net - 我可以使用构造函数动态创建用户控件吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11457929/

相关文章:

c# - 在 WPF 中使用 DataTable 和 DataGrid 时出现 System.Windows.Data 错误

c# - 从 Visual Studio 2005 迁移到 2008 和 .NET 2.0

c# - 在 ASP.Net 的 gridview 中获取选中的复选框

c# - 用 MEF 拒绝坏的 DLL

algorithm - 0-1 背包重访

c# - 如何在 Visual Studio C# 中将按钮单击事件添加到我自己的按钮

c# - ASP :Login with LayoutTemplate creates persistent cookie regardless whether remember me is checked

php - 动态创建的样式表不(总是)更新,导致样式闪烁

JavaScript : Issue in Function being called from one Js file to another

c# - bootStrap 菜单添加的元素无法访问后面的 asp.net 代码