我已经使用此示例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