使用表中的控件名称从控件库中动态选择和构建Control

时间:2010-02-01 17:23:35

标签: c# asp.net dynamic controls

我的服务器控件库中有一个自定义DDL。

目前,我通过强制键入控件的名称(通常的方式)将此控件添加到表中。

Control_Library.Report_NumberDDL newDDL = new Control_Library.Report_NumberDDL();

我希望能够通过从表中提取控件名来动态创建该控件。

所以我的代码中会有控件的名称,在本例中为“Report_NumberDDL”,然后我想创建控件而不必强烈键入它。

像这样的东西,虽然我知道这不起作用:

string controlName = "Report_NumberDDL";

Control_Library."controlName" controlNum1 = new Control_Library."controlName"();

因为那显然不起作用,有人能帮助我做些什么吗?

由于

编辑:

我试着这样做:

    Type type = Type.GetType("Control_Library.Report_NumberDDL");
    object control = Activator.CreateInstance(type);

但是在CreateInstance(type)上我得到一个null值异常。因此,没有正确创建类型。

1 个答案:

答案 0 :(得分:0)

您需要使用反射来动态实例化对象。导入System.Reflection命名空间,然后执行以下操作:

Type type = Type.GetType(ControlName); 
object control = Activator.CreateInstance(type);