2012-04-13 85 views
3

网站项目,如果我添加引用用户控件的页面或控件的标记,像这样:编程方式创建一个Web应用程序项目用户控件

<%@ Reference Control="~/controls/myUserControl.ascx" %> 

然后我可以以编程方式从代码隐藏使用自动生成的ASP命名空间创建控件的实例:

ASP.controls_myUserControl_ascx myControlInstance = 
    new ASP.controls_myUserControl_ascx(); 

然而,在Web应用程序项目,我收到一个编译错误。 MSDN上的This comment表明它只是在Web应用程序项目中不起作用,但不提供替代方案。

我可以创建中存在用户控件作为所以后面的类的一个实例:

MyWebApplication.controls.myUserControl myControlInstance 
    = new MyWebApplication.controls.myUserControl(); 

但这并不从.ascx文件包括标记(或任何服务器端控件),所以这是没用的。

我可以实例化控制,包括标记为这样:

MyWebApplication.controls.myUserControl myControlInstance 
    = LoadControl("~/controls/myUserControl.ascx") 
     as MyWebApplication.controls.myUserControl; 

这让我访问的所有属性,似乎工作得很好。但是,当我可以在不同的项目类型中使用强类型类时,从字符串路径加载控件似乎有点令人讨厌。

所以,我的问题是:有没有更好的方式来在Web应用程序项目中以编程方式创建用户控件?还是我坚持LoadControl

回答

0

LoadControl是如何以编程方式创建用户控件的。

+0

-1:值得参数(s) – Askolein 2013-10-09 16:17:15

+0

你是怎么说的?问题不在。如何使用loadcontrol .... – FiveTools 2013-10-10 16:41:48

相关问题