在Web应用程序项目中以编程方式创建用户控件

3
在一个Web站点项目中,如果我在页面或控件的标记中添加对用户控件的引用,如下所示:
<%@ Reference Control="~/controls/myUserControl.ascx" %>

那么我可以通过代码后台使用自动生成的 ASP 命名空间来编程创建该控件的实例:

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

然而,在一个Web应用程序项目中,我遇到了编译错误。MSDN的这个评论表明它在Web应用程序项目中无法正常工作,但未提供替代方法。

我可以这样创建用户控件背后存在的类的实例:

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

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

我可以这样实例化一个包括标记的控件:

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

我可以使用LoadControl方法访问所有属性,看起来效果很好。但是,在Web应用程序项目中,如果可以使用不同项目类型的强类型类,从其字符串路径加载控件似乎有点不好。

因此,我的问题是:是否有更好的方法在Web应用程序项目中以编程方式创建用户控件?或者我只能使用LoadControl方法了吗?

1个回答

0

LoadControl 是你在编程中创建用户控件的方式。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接