2010-12-10 61 views
0

我喜歡構建組件集合項目,以便稍後可以在其他項目上使用這些組件。例如,我創建了一個名爲MyDataGrid.ascx以編程方式從另一個項目加載UserControl

因此,假設項目佈局用戶控件是這樣的:

- >IPGostarProject - 在IPGostar的命名空間 - 包含的組件和 大量的用戶控件

- >SampleProject - 這裏我想從 IPGostar名稱空間使用MyDataGrid.ascx用戶控件。

但是正如你所知道的,LoadControl函數只將虛擬目錄作爲參數。所以你不能在SampleProject目錄之外加載任何東西!

那麼我該怎麼做呢?

回答

0

一種方法是對生成後事件(或任何構建腳本您正在使用)SampleProject項目的實際用戶控件複製到SampleProject的子文件夾,以便它們在運行時可以訪問。

0

只要你處理部分類,在文件系統欺騙之外沒有很好的方法來做到這一點。更好的方法是將共享UserControls實現爲WebControls。如果您有大量的標記,那麼它可能不太適合作爲共享控制,無論如何......例如,你還會分享樣式表嗎?

分離出其中大部分不是控件的核心功能的一部分的標記的,並實行只是核心作爲一個的WebControl,生成代碼的任何標記和控件。實現它的實際項目應負責佈局,格式等。使用事件爲客戶端提供掛鉤(例如,對於數據網格,CreateRow事件,CreateCell事件等)