Web应用程序项目@Reference标记

时间:2009-04-28 09:09:26

标签: asp.net dynamic user-controls web-application-project

我正在将一个网站项目转换为VS 2008中的一个Web应用程序项目,并且我遇到了一个关于动态加载用户控件的查询。

<%@ Reference Control="~/UserControls/MyUserControl.ascx" %>

然后在页面中我简单地叫...

Dim ucSupplierDetails As New ASP.usercontrols_myusercontrol_ascx

遗憾的是,在更新到Web应用程序项目时,这不再是有效行。还有其他选择吗?

2 个答案:

答案 0 :(得分:3)

在这里动态加载用户控件是另一种选择:

Dim ucSupplierDetails As New UserControl 
ucSupplierDetails.LoadControl("~/UserControls/MyUserControl.ascx")
placeholder.Controls.Add(ucSupplierDetails)

编辑:这是第二个选项,手动将用户控件放入命名空间:

Namespace MyUserControlNamespace

    Public Class MyUserControl Inherits System.Web.UI.UserControl

    End Class

End Namespace

不要忘记更改用户控件的类声明(最后一行的Inherits属性):

<%@ Control Language="VB" AutoEventWireup="true" 
    CodeFile="MyUserControl.ascx.vb" 
    Inherits="MyUserControlNamespace.MyUserControl" %>

现在,您可以通过它的命名空间访问它们:

Dim ucSupplierDetails As New MyUserControlNamespace.MyUserControl

答案 1 :(得分:2)

尝试使用<%@ Import namespace="Namespace.Of.Your.Usercontrol" %>代替