C# 以编程方式更改某些文本的背景颜色
我已经用这个例子实现了母版页。我在SiteMaster.cs继承的母版页上有一个名为Environment的属性。在我的MasterPage.master上,我有以下代码: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 %
<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) %>