2013-07-17 80 views
1

我有一個asp頁面employeeHome.aspx,我有兩個母版頁adminMasterPage.master用於Admin登錄,userMasterPage.master用於普通用戶登錄,因爲我有兩種類型的用戶登錄一個作爲管理員和其他普通用戶。我想將adminMasterPage.master設置爲employeeHome.aspx的母版頁,以防正常用戶登錄(僅針對此頁面)。 我該怎麼做?在運行時爲特定頁面選擇母版頁

+0

你試過了什麼? – nrsharma

+0

我必須顯示adminMasterPage作爲普通用戶登錄頁面employeeHome.aspx的母版頁。但我沒有得到如何做到這一點。 –

+0

你使用過任何會話變量嗎? – nrsharma

回答

3

將您的代碼更改爲Page_PreInit事件中的母版頁。

protected void Page_PreInit(object sender, EventArgs e) 
{ 
    this.MasterPageFile = "MasterPage.master"; 
} 
+0

我在哪裏可以調用這個Page_PreInit方法?在employeeHome.aspx的page_Load()中的任何位置? –

+0

這是一個單獨的頁面方法。這是asp.net頁面生命週期的一部分。 – nrsharma

+0

查看[this](http://msdn.microsoft.com/en-us/library/ms178472.aspx#lifecycle_events)瞭解關於頁面生命週期的更多詳細信息 –

1

把代碼在employeeHome.aspx

protected void Page_PreInit(object sender, EventArgs e) 
     { 
      if (Session["empCode"] != null) 
      { 
       if (Session["empCode"].ToString() != "0") 
       { 
        this.MasterPageFile = Server.MapPath("adminMasterPage.master"); 
       } 
      } 
     } 
+0

再次檢查答案,條件是有「!=」比較..現在我沒有更新它:)。 – nrsharma

+0

試過但沒有工作。 –

+0

對於普通用戶,「Session [」empCode「]中有什麼值? – nrsharma

0

您可以更改由具有在PreInit事件,這是在頁面生命週期的一部分,指定所需的母版頁文件..

protected void Page_PreInit(object sender, EventArgs e) 
{ 
    this.MasterPageFile = "adminMasterPage.master"; //For Admin 

    //this.MasterPageFile = "userMasterPage.master"; - For Normal User 
} 
+0

我收到錯誤 - 文件'/Employee/AdminMaster.Master'不存在。 AdminMaster頁面在這裏StyleLibrary /佈局/ AdminMaster.master在我的代碼,所以我嘗試this.MasterPageFile =「〜StyleLibrary /佈局/ AdminMaster.Master」;但同樣的錯誤 - 文件'/Employee/~StyleLibrary/layout/AdminMaster.Master'不存在。 –

+0

我怎麼能給我的網頁路徑this.MasterPageFile? –

+0

將其設爲:this.MasterPageFile =「/StyleLibrary/layout/AdminMaster.Master」; –

0

這樣工作,這裏我做了@Iswanto San的建議,並對路徑進行了修改。

protected void Page_PreInit(object sender, EventArgs e) 
    { 
     if (Session["IsEmporAdm"].ToString() == "0") 
     { 
      this.MasterPageFile = "~/StyleLibrary\\layout\\AdminMaster.Master"; 
     } 
     else 
     { 
      this.MasterPageFile = "~/StyleLibrary\\layout\\UserMaster.Master"; 
     } 
    } 
相關問題