C# 视图 - 字体颜色

Posted

技术标签:

【中文标题】C# 视图 - 字体颜色【英文标题】:C# view - font color 【发布时间】:2014-08-04 18:28:32 【问题描述】:

我有一个显示来自数据库/表的数据的视图。如果该字段是某个值,我希望该实例显示为具有红色文本。我已经尝试过了,不幸的是我认为 foreach 循环(我需要)正在引起问题。具体来说,它使所有文本变为红色,而不仅仅是我想要的实例。

 <tbody>
          @foreach (var item in Model)
          
        var T2stat = @html.DisplayFor(modelItem => item.T2STATUS).ToString();
        var T3stat = @Html.DisplayFor(modelItem => item.T3STATUS).ToString();     
        <tr>                                               
        <td>
            @Html.DisplayFor(modelItem => item.EXPORT_DATE)
        </td>
            @if ((T2stat != "") && (T2stat != "Exported")) 
                <td><p style="color:red">
            @Html.DisplayFor(modelItem => item.T2STATUS)
        </p></td>
            
            else
                <td><p style="color:black">
              @Html.DisplayFor(modelItem => item.T2STATUS)
                    </p></td>  
                                           
         @if ((T3stat != "") && (T3stat != "Exported")) 
                <td><p style="color:red">
            @Html.DisplayFor(modelItem => item.T3STATUS)
        </p></td>
            
            else
                <td><p style="color:black">
              @Html.DisplayFor(modelItem => item.T3STATUS)
                   </p></td>  
                                           

我将变量定义改为....

 var T2stat = (item.T2STATUS != null) ? item.T2STATUS.ToString() : String.Empty;
 var T3stat = (item.T3STATUS != null) ? item.T3STATUS.ToString() : String.Empty; 

不幸的是,我仍然遇到同样的问题,尽管我将黑色指定为文本颜色,但值仍显示为红色。 IE; “Exported”应始终显示为黑色文本,null 也为黑色,但它是红色的,应仅用于错误消息。

【问题讨论】:

【参考方案1】:

我认为您的问题在于这些作业:

var T2stat = @Html.DisplayFor(modelItem => item.T2STATUS).ToString();
var T3stat = @Html.DisplayFor(modelItem => item.T3STATUS).ToString();     

这将为这些变量分配显示模板的渲染值,而不是数据值。

也许你是这个意思?

var T2stat = (item.T2STATUS != null) ? item.T2STATUS.ToString() : String.Empty;
var T3stat = (item.T3STATUS != null) ? item.T3STATUS.ToString() : String.Empty;     

【讨论】:

【参考方案2】:

试试这个....

<tbody>
    @foreach (var item in Model)
       
        <tr>
            <td>
                @Html.DisplayFor(modelItem => item.EXPORT_DATE)
            </td>

            <td>
                <p  @((item.T2STATUS == null) || (item.T2STATUS == "Exported") ? "style=\"color:black;\"" : "style=\"color:red;\"")>
                    @Html.DisplayFor(modelItem => item.T2STATUS)
                </p>
            </td>

            <td>
                <p @((item.T3STATUS == null) || (item.T3STATUS == "Exported") ? "style=\"color:black;\"" : "style=\"color:red;\"")>
                    @Html.DisplayFor(modelItem => item.T3STATUS)
                </p>
            </td>
        </tr>
    
</tbody>

如果您需要其他任何东西,请告诉我...否则这不起作用.. :)

【讨论】:

所有文本现在都是黑色的,已经实现了您的解决方案。嗯。 检查我写的条件...是否符合您的条件...我写了&&条件... 有 3 个可能的条目。已导出(黑色)、空值或错误消息(红色) 导出失败:文件“C:\BillingExport\BILLING_TABLE_FILE02.txt”尚未导入。我希望除错误消息条目之外的所有内容都显示为黑色。 因此您可以根据您想要的 o/p 编辑条件...使用条目编辑问题... 还是没有解决问题,应该是and。它被绊倒的部分是? "style=\"color:red;\"" : "style=\"color:black;\"")。

以上是关于C# 视图 - 字体颜色的主要内容,如果未能解决你的问题,请参考以下文章

C# 如何改变控制台输出字体颜色

C# 设置DEV控件gridview单元格字体颜色

c#怎么更改Label文字的颜色

如何在表格视图中增加所选索引的字体颜色和字体大小?

在C# winform中怎么设置文本框中部分字体的颜色,即根据条件在编程中改变文本框中部分字体的颜色

c#中如何设置richtextbox 字体颜色