动态加载用户控件(整理)微软示例:就像您可以通过编程方式在Web窗体页上创建任意ASP
NET服务器控件的实例,您也可以通过使用包含页的LoadControl方法来做到这一点
但您首先必须使用@Control指令的className属性将强类型与用户控件相关联
之所以需要这样是因为LoadControl方法返回Control类的类型,并且您需要将该用户控件转换为合适的强类型,以便设置该控件的各个属性
以下代码使用className属性将MyUserControl
ascx文件中保存的用户控件转换为强类型
以编程方式创建用户控件的实例1
使用@Reference指令在要包含用户控件的Web窗体页的顶部注册该用户控件
当以编程方式创建用户控件时,只有您创建了对该控件的引用后,用户控件的强类型才可用于该Web窗体页
例如,以下代码创建对MyUserControl
ascx文件中所创建用户控件的引用
注意当以声明方式在Web窗体页中创建用户控件的实例时,请使用@Register指令
在代码隐藏类文件中,或是在包含
aspx文件的代码声明块中,创建用户控件的实例
根据需要分配属性值,并使用Add方法将该控件添加到包含页的ControlCollection对象上
这使该控件可用于该页的继承的Control
Controls属性
在以下示例中,创建MyUserControl
ascx的实例并将其BackColor属性设置为beige
[C#]Controlc1=LoadControl("MyUserControl
ascx");((MyUserControl)c1)
BackColor="beige";Page
Controls
Add(c1);[VisualBasic]Dimc1AsUserControl=LoadControl("MyUserControl
ascx")CType