在App_Code类中转换ascx

时间:2011-03-04 11:30:02

标签: asp.net casting ascx app-code

我有一个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类,因此我无法转换它来设置自定义属性(我可以加载它,但不能施展它)。我不知道如何复制&lt;%Reference ...&gt;来自App_Code类的东西。任何人都知道如何从App_Code类中引用(并因此强制转换)我的ascx?感谢。

1 个答案:

答案 0 :(得分:6)

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

但是您可以在App_Code文件夹中添加接口/基类,以标识您要在usercontrol中实现的自定义属性和方法:

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;