この例を使用してマスターページを実装しましたHow to implement a status bar in an ASP.NET application?。 SiteMaster.csに継承されたMasterPageというプロパティがEnvironmentという名前を持っています。プログラムによってテキストの背景色を変更します
<body>
<form id="frmMaster" runat="server">
<.. some content removed for brevity ...>
Environment: <%= this.Environment %>
</form>
</body>
私は何をしたいことはthis.Environment
を評価し、それが「LIVE」であるならば、this.Environmentテキスト赤の背景に色を、そしてそれが「TEST」かどうされています。私のMasterPage.masterに私はこのコードを持っていますそれは黄色です。どうすればいい?
UPDATE私はちょうど
protected void Page_Load(object sender, EventArgs e)
{
lblEnvironment.Text = this.Environment;
if (this.Environment == "LIVE")
{
lblEnvironment.BackColor = System.Drawing.Color.Red;
}
}
ページの負荷をMasterPage.masterためにこのコードを追加しましたが、テキストが設定されません、それは空白です!また、古いテキストも空白になっています(私は古いコードをそこに残しました)。私はまた、Visual Studioでの警告を得る:
'ASP.masterpage_master.Page_Load(オブジェクト、 System.EventArgs)' を非表示には メンバーのSiteMaster.Page_Load(オブジェクト、 System.EventArgs) 'を継承しました。隠蔽が意図されていた場合は、新しい キーワードを使用してください。
アップデート2:これは私が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'メソッドを持てませんか?これは私が立ち往生しているところです、ありがとうございます。 –
だから、あなたは普通のマスターページを持っていて、これを継承したクラスです。マスターページとして使用しているのは* this *クラスですか?私はなぜあなたが別の 'PageLoad'メソッドを持つことができないのか分かりません。なぜなら、あなたは普通のページにこれを持ち、' Page'を継承しているからです。これを試してみるとエラーになりますか? –
@Graham - 私は私の質問を更新しました。 –