无法动态添加和引用用户控件

时间:2014-04-08 11:59:48

标签: asp.net user-controls

我正在尝试在另一个用户控件中动态添加用户控件,但收到错误消息"文件' /controls/request_inspector.ascx'不存在。"

我在.aspx页面中添加了对将使用它的控件的引用,如下所示:

   <%@ Reference Control="request-inspector.ascx" %>

在UserControl中我添加了一个类似这样的ClassName:

   <%@ Control Language="vb" AutoEventWireup="false" CodeBehind="request-inspector.ascx.vb" 
       Inherits="Web.PO.request_inspector" ClassName="request_inspector" %>

页面加载事件

  Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
    Dim c As request_inspector
    c = CType(LoadControl("~/controls/request_inspector.ascx"), request_inspector)
    c.ID = "c1"

    phReqInspectors.Controls.Add(c)
    c = Nothing
  End Sub

用户控件位于控制文件夹中,我尝试更改路径但仍然是相同的错误消息。这是完整路径C:\ Projects \ PSource \ projects \ POProject \ Web.PO \ controls \ request-inspector.ascx

1 个答案:

答案 0 :(得分:0)

删除@Reference标记和类名后,它的工作正常,但没有任何意义。可能是Team Foundation服务器正在播放,因为我在项目中添加了一个新文件。

之后我用参考标签进行了测试,效果很好。

    Dim c As request_inspector
    c = CType(LoadControl("~/controls/request-inspector.ascx"), request_inspector)
    c.ID = "c1"

    phReqInspectors.Controls.Add(c)
    c = Nothing

如果我使用@Reference标签会有什么不同?我知道你打算以编程方式加载控件时使用@ Reference但是如果我不使用它会怎么样?