我已經使用此示例How to implement a status bar in an ASP.NET application?實現了母版頁。我的SiteMaster.cs上有一個屬性,它繼承了名爲Environment的MasterPage。在我MasterPage.master我有這樣的代碼:以編程方式更改某些文本的背景顏色
<body>
<form id="frmMaster" runat="server">
<.. some content removed for brevity ...>
Environment: <%= this.Environment %>
</form>
</body>
我想要做的是評估this.Environment
,如果它是「活」然後選擇顏色this.Environment文字的背景紅色的,如果它的「TEST」爲它着黃色。我將如何做到這一點?
UPDATE我剛加入這個代碼MasterPage.master
protected void Page_Load(object sender, EventArgs e)
{
lblEnvironment.Text = this.Environment;
if (this.Environment == "LIVE")
{
lblEnvironment.BackColor = System.Drawing.Color.Red;
}
}
該頁面加載,但文字不被設置,它是空白!此外,填充的舊文本現在也是空白的(我現在留下了舊代碼)。我也得在Visual Studio中警告:
'ASP.masterpage_master.Page_Load(對象, System.EventArgs)' 隱藏繼承 成員 'SiteMaster.Page_Load(對象, System.EventArgs)'。如果需要隱藏,請使用新的 關鍵字。
UPDATE2:這是我在SiteMaster.cs
using System;
using System.Web.UI;
public class SiteMaster : MasterPage
{
public string StatusText { get; set; }
public string StatusTime { get; set; }
public string Environment { get; set; }
protected virtual void Page_Load(object sender, EventArgs e)
{
if (!this.IsPostBack)
{
if (Session["status"] != null)
{
this.StatusText = Session["status"].ToString();
this.StatusTime = Session["statusTime"].ToString();
}
this.Environment = Session["environment"].ToString();
}
}
}
我應該在哪個事件中設置BackColor?問題是'MasterPage'繼承自SiteMaster.cs,並且SiteMaster.cs上有一個'Page_Load'方法。我不能在MasterPage.master和SiteMaster.cs中有一個'Page_Load'方法嗎?這是我卡住的地方,謝謝。 – 2010-11-18 10:49:04
所以你有一個普通的母版頁,然後是一個繼承自這個的類,它是你用作母版頁的*這個類?我不明白爲什麼你不能擁有另外一個'PageLoad'方法,畢竟,你在普通頁面上有這些方法,並且它們是從'Page'繼承的。如果你嘗試這個,你會得到一個錯誤嗎? – 2010-11-18 10:53:48
@格拉漢姆 - 我已經更新了我的問題,你介意看一下嗎? – 2010-11-18 11:55:54