0

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

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

然后在我简单调用的页面中......

Dim ucSupplierDetails As New ASP.usercontrols_myusercontrol_ascx

可悲的是,当更新到网络应用项目时,这不再是一条有效的线路。有替代方案吗?

4

2 回答 2

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

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

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

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

Dim ucSupplierDetails As New MyUserControlNamespace.MyUserControl
于 2009-12-02T20:50:52.397 回答
2

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

于 2009-12-02T14:33:16.447 回答