C# 以编程方式更改某些文本的背景颜色

C# 以编程方式更改某些文本的背景颜色,c#,asp.net,c#-4.0,C#,Asp.net,C# 4.0,我已经用这个例子实现了母版页。我在SiteMaster.cs继承的母版页上有一个名为Environment的属性。在我的MasterPage.master上,我有以下代码: <body> <form id="frmMaster" runat="server"> <.. some content removed for brevity ...> Environment: <%= this.Environment %

我已经用这个例子实现了母版页。我在SiteMaster.cs继承的母版页上有一个名为Environment的属性。在我的MasterPage.master上,我有以下代码:

<body>
    <form id="frmMaster" runat="server">
        <.. some content removed for brevity ...>

        Environment: <%= this.Environment %>
    </form>
</body>
页面加载,但文本未设置,为空!另外,填充的旧文本现在也为空(我暂时将旧代码留在那里)。我在Visual Studio中还收到一条警告:

'ASP.母版页\母版页\加载(对象, System.EventArgs)“隐藏继承的 成员的SiteMaster.Page\u加载(对象, 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();
        }

    }
}

而不是使用
而不是像这样使用

   var preTag = @" <font style=""background:yellow;color:#ff0000;font-weight:600;""><b>";
   var postTag = " </b></font>";

   Environment: <%= ((this.Environment=="LIVE") ? (preTag + this.Environment + postTag) : this.Environment)   %>
var preTag=@;
var postTag=“”;
环境:

类似的东西

   var preTag = @" <font style=""background:yellow;color:#ff0000;font-weight:600;""><b>";
   var postTag = " </b></font>";

   Environment: <%= ((this.Environment=="LIVE") ? (preTag + this.Environment + postTag) : this.Environment)   %>
var preTag=@;
var postTag=“”;
环境:

您还可以将代码从MasterPage.master中的Page\u Load移动到Page\u PreRender,这样应该可以工作。。它是空白的,因为MasterPage.master Page\u Load覆盖了SiteMaster.master的页面加载,因此从未分配环境。

您也可以在MasterPage.master中将代码从页面加载移动到页面预呈现,它应该可以工作。。它是空白的,因为MasterPage.master Page\u Load覆盖了SiteMaster.master的页面\u Load,因此从未分配环境。

应该在哪个事件上设置背景色?问题是
母版页
继承自SiteMaster.cs,并且SiteMaster.cs上有一个
页面加载
方法。我不能在MasterPage.master和SiteMaster.cs中使用
Page\u Load
方法,可以吗?这就是我被卡住的地方,谢谢。你有一个普通的母版页,然后是一个继承自它的类,你用这个类作为母版页?我不明白为什么您不能有另一个
PageLoad
方法,毕竟,您在普通页面上有这些方法,它们继承自
Page
。如果您尝试此操作,是否会出错?@Graham-我已更新了我的问题,您介意看一看吗?@Mark-我猜您的页面加载方法没有被调用。编译器是否允许您在方法声明中使用
override
关键字?@Graham-当我尝试获取
'ASP.masterpage\u master.Page\u Load(object,System.EventArgs)':无法重写继承的成员'SiteMaster.Page\u Load(object,System.EventArgs)',因为它未标记为虚拟、抽象、,或覆盖
我应该在哪个事件上设置背景色?问题是
母版页
继承自SiteMaster.cs,并且SiteMaster.cs上有一个
页面加载
方法。我不能在MasterPage.master和SiteMaster.cs中使用
Page\u Load
方法,可以吗?这就是我被卡住的地方,谢谢。你有一个普通的母版页,然后是一个继承自它的类,你用这个类作为母版页?我不明白为什么您不能有另一个
PageLoad
方法,毕竟,您在普通页面上有这些方法,它们继承自
Page
。如果您尝试此操作,是否会出错?@Graham-我已更新了我的问题,您介意看一看吗?@Mark-我猜您的页面加载方法没有被调用。编译器是否允许您在方法声明中使用
override
关键字?@Graham-当我尝试获取
'ASP.masterpage\u master.Page\u Load(object,System.EventArgs)':无法重写继承的成员'SiteMaster.Page\u Load(object,System.EventArgs)',因为它没有标记为virtual、abstract或override
<%@ Master Language="C#" AutoEventWireup="true" CodeBehind="SiteMaster.master.cs" Inherits="WebApplication1.SiteMaster" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
    <asp:ContentPlaceHolder ID="head" runat="server">
    </asp:ContentPlaceHolder>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:Label ID="environmentLabel" runat="server" />

        <asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server" />
    </div>
    </form>
</body>
</html>
using System;

namespace WebApplication1
{
    public partial class SiteMaster : System.Web.UI.MasterPage
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            this.environmentLabel.Text = "environment";
            this.environmentLabel.BackColor = System.Drawing.Color.Red;
        }
    }
}
<%@ Page Title="" Language="C#" MasterPageFile="~/SiteMaster.Master" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="WebApplication1.WebForm1" %>
   var preTag = @" <font style=""background:yellow;color:#ff0000;font-weight:600;""><b>";
   var postTag = " </b></font>";

   Environment: <%= ((this.Environment=="LIVE") ? (preTag + this.Environment + postTag) : this.Environment)   %>