C# 在文本框asp.net中显示不同颜色的字符串(文本)
在我的asp.net网站中,我有一个提供日志信息的文本框。我正在使用此日志显示错误、成功和其他信息。我想做的是根据日志类型在文本框中以颜色显示结果文本。对于eg;我想将错误显示为红色文本,将成功显示为绿色文本,依此类推 我尝试了以下代码,但使用此代码会更改textbox整个内容的颜色C# 在文本框asp.net中显示不同颜色的字符串(文本),c#,asp.net,C#,Asp.net,在我的asp.net网站中,我有一个提供日志信息的文本框。我正在使用此日志显示错误、成功和其他信息。我想做的是根据日志类型在文本框中以颜色显示结果文本。对于eg;我想将错误显示为红色文本,将成功显示为绿色文本,依此类推 我尝试了以下代码,但使用此代码会更改textbox整个内容的颜色 /// <summary> /// colorIndex (0 = default, 1 = red, 2 = green) /// </summary> /
/// <summary>
/// colorIndex (0 = default, 1 = red, 2 = green)
/// </summary>
/// <param name="logValue"></param>
/// <param name="colorIndex"></param>
private void writeToLog(string logValue, int colorIndex)
{
if (colorIndex == 0)
{
TextBox2.ForeColor = Color.Black;
}
else if(colorIndex == 1)
{
TextBox2.ForeColor = Color.Red;
}
else if(colorIndex == 2)
{
TextBox2.ForeColor = Color.Green;
}
TextBox2.Text = "[ " + DateTime.Now + "] " + logValue + Environment.NewLine + TextBox2.Text;
}
<div id = "log" style="border: thin solid #00CC99; width:844px; height:193px; overflow:auto;" runat= "server">
</div>
//
///颜色索引(0=默认值,1=红色,2=绿色)
///
///
///
私有void writeToLog(字符串logValue,int colorIndex)
{
如果(colorIndex==0)
{
TextBox2.ForeColor=Color.Black;
}
else if(colorIndex==1)
{
TextBox2.ForeColor=Color.Red;
}
else if(colorIndex==2)
{
TextBox2.ForeColor=Color.Green;
}
TextBox2.Text=“[”+DateTime.Now+“]”“+logValue+Environment.NewLine+TextBox2.Text;
}
实际上,我希望输出如下:
您可以在上面的输出中看到,同一文本框中有三种不同颜色的文本。
此输出实际上来自桌面应用程序。我想在asp.net网页中显示相同类型的输出?我怎么做?请帮忙。提前谢谢 不能使用简单的文本框。相反,您必须使用许多所见即所得编辑器中的一个。任何服务器端语言的包装器都有许多可供选择的选项 但是,由于您的代码实际上并不需要用户能够修改这些数据,因此您只需使用正确的样式呈现HTML代码,并应用
overflow-y:auto;最大高度:100px
CSS样式,以便在内容过长时呈现滚动条。您需要使用
或者asp.net中的某个WYGIWYS编辑器,我认为表格是最好的选择。您可以使用id和类更改文本颜色 并通过应用css为其提供样式
<table id="log">
<tr><th>Response Type</th><th>Response Time</th><th>Response Data </th></tr>
<tr class="error"><td></td><td></td><td></td></tr>
<tr class="info"><td></td><td></td><td></td></tr>
</table>
响应类型响应时间响应数据
您需要按jQuery或代码隐藏添加行
我想这对你完全有帮助。你可以用标签来代替。这样,使用htmlspan标记呈现文本以定义不同的样式将非常简单和容易
if (colorIndex == 0)
{
Lable2.Text += "<span style='color:Black'>Black information...</span><br/><br/>";
}
else if(colorIndex == 1)
{
Lable2.Text += "<span style='color:Red'>Red information...</span><br/><br/>";
}
else if(colorIndex == 2)
{
Lable2.Text += "<span style='color:Green'>Green information...</span><br/><br/>";
}
if(colorIndex==0)
{
Lable2.Text+=“黑色信息…
”;
}
else if(colorIndex==1)
{
Lable2.Text+=“红色信息…
”;
}
else if(colorIndex==2)
{
Lable2.Text+=“绿色信息…
”;
}
谢谢大家的回答!正如Knaģi所说,由于客户可能不需要编辑日志中的值,我认为使用所见即所得编辑器是不必要的。所以为了解决我的问题,我使用了div而不是textbox
/// <summary>
/// colorIndex (0 = default, 1 = red, 2 = green)
/// </summary>
/// <param name="logValue"></param>
/// <param name="colorIndex"></param>
private void writeToLog(string logValue, int colorIndex)
{
if (colorIndex == 0)
{
TextBox2.ForeColor = Color.Black;
}
else if(colorIndex == 1)
{
TextBox2.ForeColor = Color.Red;
}
else if(colorIndex == 2)
{
TextBox2.ForeColor = Color.Green;
}
TextBox2.Text = "[ " + DateTime.Now + "] " + logValue + Environment.NewLine + TextBox2.Text;
}
<div id = "log" style="border: thin solid #00CC99; width:844px; height:193px; overflow:auto;" runat= "server">
</div>
在我的代码中,我填写了以下日志:
private void writeToLog(string logValue, int colorIndex)
{
logValue = "[ " + DateTime.Now + "] " + logValue;
if (colorIndex == 0)
{
string htmlCode = "<font style='color:black'>"+logValue+"</font><br/>";
log.InnerHtml = htmlCode + log.InnerHtml;
}
else if(colorIndex == 1)
{
string htmlCode = "<font style='color:red'>" + logValue + "</font><br/>";
log.InnerHtml = htmlCode + log.InnerHtml ;
}
else if(colorIndex == 2)
{
string htmlCode = "<font style='color:green'>" + logValue + "</font><br/>";
log.InnerHtml = htmlCode + log.InnerHtml ;
}
}
private void writeToLog(字符串logValue,int colorIndex)
{
logValue=“[”+DateTime.Now+“]”“+logValue;
如果(colorIndex==0)
{
字符串htmlCode=”“+logValue+”
”;
log.InnerHtml=htmlCode+log.InnerHtml;
}
else if(colorIndex==1)
{
字符串htmlCode=”“+logValue+”
”;
log.InnerHtml=htmlCode+log.InnerHtml;
}
else if(colorIndex==2)
{
字符串htmlCode=”“+logValue+”
”;
log.InnerHtml=htmlCode+log.InnerHtml;
}
}
您可以使用标签
或span
来通过css
指定颜色。