我正在将一个网站项目转换为VS 2008中的一个Web应用程序项目,并且我遇到了一个关于动态加载用户控件的查询。
<%@ Reference Control="~/UserControls/MyUserControl.ascx" %>
然后在页面中我简单地叫...
Dim ucSupplierDetails As New ASP.usercontrols_myusercontrol_ascx
遗憾的是,在更新到Web应用程序项目时,这不再是有效行。还有其他选择吗?
答案 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" %>
代替