【问题标题】:Cast ascx within App_Code class在 App_Code 类中强制转换 ascx
【发布时间】:2011-03-04 11:30:01
【问题描述】:

我有一个 ascx,我想从 App_Code 中的一个类加载和转换它。我无法从 App_Code 类中使用它,尽管我可以从 aspx 页面中使用它。

ASPX 页面技术适用于以下代码:

pc = LoadControl("enquirycapture.ascx");
((ASP.enquirycapture_ascx)pc).CustomProperty = customObject;

(注意:我在aspx页面中有以下内容:)

<%@ Reference VirtualPath="~/enquirycapture.ascx" %>

但是,当我尝试从 App_Code 类中转换控件时,它无法“看到” ascx 类,因此我无法对其进行转换以设置自定义属性(我可以加载它,但不能投它)。我不知道如何从 App_Code 类中复制 东西。有人知道我如何从 App_Code 类中引用(并因此转换)我的 ascx 吗?谢谢。

【问题讨论】:

    标签: asp.net casting ascx app-code


    【解决方案1】:

    App_Code 编译为无法引用 CodeFile 中的类型的单独程序集。

    但是您可以将接口/基类添加到您的 App_Code 文件夹,该文件夹标识您打算在用户控件中实现的自定义属性和方法:

    public class EnquiryCaptureBase : System.Web.UI.UserControl
    {
        public object CustomProperty { get; set; }
    }
    

    然后

    public partial class EnquiryCapture : EnquiryCaptureBase
    {
    
    }
    

    最后在App_Code的某个地方:

    pc = LoadControl("enquirycapture.ascx");
    ((EnquiryCaptureBase)pc).CustomProperty = customObject;
    

    【讨论】:

    • 太棒了,这就是工作。非常感谢。
    猜你喜欢
    • 1970-01-01
    • 2010-10-19
    • 2017-10-05
    • 1970-01-01
    • 2021-01-24
    • 1970-01-01
    • 1970-01-01
    • 2010-11-08
    • 1970-01-01
    相关资源
    最近更新 更多