我正在将网站项目转换为 VS 2008 中的 Web 应用程序项目,并且我遇到了有关动态加载用户控件的查询。
<%@ Reference Control="~/UserControls/MyUserControl.ascx" %>
然后在我简单调用的页面中......
Dim ucSupplierDetails As New ASP.usercontrols_myusercontrol_ascx
可悲的是,当更新到网络应用项目时,这不再是一条有效的线路。有替代方案吗?
我正在将网站项目转换为 VS 2008 中的 Web 应用程序项目,并且我遇到了有关动态加载用户控件的查询。
<%@ Reference Control="~/UserControls/MyUserControl.ascx" %>
然后在我简单调用的页面中......
Dim ucSupplierDetails As New ASP.usercontrols_myusercontrol_ascx
可悲的是,当更新到网络应用项目时,这不再是一条有效的线路。有替代方案吗?
在这里动态加载您的用户控件是一种替代方法:
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
不要忘记更改用户控件的类声明(最后一行的继承属性):
<%@ Control Language="VB" AutoEventWireup="true"
CodeFile="MyUserControl.ascx.vb"
Inherits="MyUserControlNamespace.MyUserControl" %>
现在,您可以通过它的命名空间访问它们:
Dim ucSupplierDetails As New MyUserControlNamespace.MyUserControl
尝试<%@ Import namespace="Namespace.Of.Your.Usercontrol" %>
改用