【问题标题】:Unable to Add and reference user control dynamically无法动态添加和引用用户控件
【发布时间】:2014-04-08 20:33:12
【问题描述】:

我正在尝试在另一个用户控件中动态添加用户控件,但收到错误消息“文件 '/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

【问题讨论】:

    标签: asp.net user-controls


    【解决方案1】:

    删除 @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,但如果我不使用它怎么办?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-06
      • 1970-01-01
      • 2012-12-10
      • 1970-01-01
      相关资源
      最近更新 更多