2011-03-04 57 views
2

我有一個ascx,我想從App_Code中的類中加載和投射。我無法從App_Code類中獲得它,儘管我可以從aspx頁面中獲得它。在App_Code類中投射ascx

ASPX頁面技術正常工作與下面的代碼:

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

(注:我在aspx頁面如下:)

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

然而,當我嘗試鑄造控制從App_Code類中,它不能'看到'ascx類,因此我無法強制轉換爲設置自定義屬性(我可以加載它,但不能強制轉換它)。我不知道如何複製App_Code類中的<%Reference ...>。任何人都知道我可以從App_Code類引用(並因此投射)我的ascx?謝謝。

回答

6

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; 
+0

太棒了,只是工作。非常感謝。 – DEH 2011-03-04 14:01:07

+0

@DEH:很高興我能幫忙:) – Alex 2011-03-04 14:09:24