我正在尝试在另一个用户控件中动态添加用户控件,但收到错误消息"文件' /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
答案 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但是如果我不使用它会怎么样?