我有一個使用2個母版頁的應用程序。一個用於主頁面和一個用於彈出頁面。這些都是從主頁繼承從基類訪問不同的主頁
public partial class MainMasterPage : System.Web.UI.MasterPage
{
UserBO objUser = null;
public UserBO GetCurrentUser()
{
UserBO userBO = new UserBO();
.....
.....
return userBO;
}
}
public partial class PopupMasterPage : System.Web.UI.MasterPage
{
UserBO objUser = null;
public UserBO GetCurrentUser()
{
UserBO userBO = new UserBO();
.....
.....
return userBO;
}
}
到目前爲止好。所以我的內容頁面全部從基類繼承。基類有一個方法, 從Base類調用GetCurrentUser。
public class BasePage : Page
{
//.....
protected UserBO GetCurrentUserFromMasterPage()
{
this.Master
Elsa.MasterPages.MainMasterPage master = (Elsa.MasterPages.MainMasterPage)this.Master;
return master.GetCurrentUser();
}
}
所以在這裏你可以看到基本頁面鑄MasterPage
,然後調用GetCurrentUser
。
只是爲了背景...主頁面獲取當前用戶登錄到系統,然後使用信息繪製自己。如果用戶在會話中,它會得到它,否則它會從數據庫中加載。我不希望內容頁面做同樣的事情,所以我希望基本頁面始終從主頁獲取內容頁面的當前用戶。
但是,我的問題是,因爲有2個母版頁,所有的網頁都從基地 頁面派生..我需要能夠投給正確的主人。
public partial class MyMainPage : Elsa.Pages.BasePage
{
private long _userId = -1;
public partial class MyPopupPage : Elsa.Pages.BasePage
{
private long _userId = -1;
如果我放入MasterType指令,我可以調用正確的主內容頁面中的方法。 但我不想從內容中調用它作爲它的常用方法,所以我需要它在基礎中。
所以沒有人知道如何處理這個問題。我正在考慮再次爲PopupBasePage派生BasePage,並編寫GetCurrentUserFromMasterPage()
以將其轉換爲彈出主文件。 或者我將一些東西傳遞給BasePage構造函數,告訴它要投射什麼內容。
因爲我有很多的網頁,我想保持對我所有網頁的影響。
由於中號
亨克,這實際上是我正在看,這一刻。所以我會在SiteMasterPage中實現GetCurrentUser,然後在每個派生母版頁中處理頁面加載等。這是否正確。情況就是這樣..我的基類然後將主頁面投到SiteMasterPage ..謝謝米克 – Doiremik
是的,你投到你需要的類型。 –
好酷...只是給它一個旋轉現在Henk – Doiremik