C# 根据值更改颜色

C# 根据值更改颜色,c#,jquery,html,asp.net-mvc,html.encode,C#,Jquery,Html,Asp.net Mvc,Html.encode,我有许多字段,如果数据过期,我希望在这些字段中以红色显示数据 如果日期小于今天的日期,则我希望它显示为红色。最好的方法是什么 编辑 这是我的详细视图。它不在网格中。它只是单个分包合同的字段列表。有,保险GL,保险AL,保险WC等不同的字段,而不是网格中重复的相同字段。这实际上取决于您在客户端页面中呈现数据的方式。您是否使用asp.net表单和GridView?您是否自己为数据生成html 我通常使用css类来实现这一点。我将为标记的项目创建一个类,如下所示: .late { color

我有许多字段,如果数据过期,我希望在这些字段中以红色显示数据

如果日期小于今天的日期,则我希望它显示为红色。最好的方法是什么

编辑
这是我的详细视图。它不在网格中。它只是单个分包合同的字段列表。有,保险GL,保险AL,保险WC等不同的字段,而不是网格中重复的相同字段。

这实际上取决于您在客户端页面中呈现数据的方式。您是否使用asp.net表单和GridView?您是否自己为数据生成html

我通常使用css类来实现这一点。我将为标记的项目创建一个类,如下所示:

.late
{
    color: #f00;
}
protected void gridview_RowDataBound(object sender, GridViewRowEventArgs e)
{
    if (e.Row.RowType == DataControlRowType.DataRow)
    {
        Item item = e.Row.DataItem as Item;
        if (item.IsLate)
            e.Row.CssClass = "late";
    }
}
在生成我的html的代码后面,如果您自己创建所有html:

foreach(Item item in items)
{
    string cls = "";
    if (item.IsLate)
        cls = " class='late'";
    html += "<div" + cls + ">" + item.Text + "</div>";
}
如果数据绑定到GridView,则可以为
RowDataBound
使用事件处理程序,并执行以下操作:

.late
{
    color: #f00;
}
protected void gridview_RowDataBound(object sender, GridViewRowEventArgs e)
{
    if (e.Row.RowType == DataControlRowType.DataRow)
    {
        Item item = e.Row.DataItem as Item;
        if (item.IsLate)
            e.Row.CssClass = "late";
    }
}
您还可以将样式应用于GridView中的单个单元格:

// 3rd cell
e.Row.Cells[2].CssClass = "late";

希望其中一个适合您的场景。

如果值小于零,我将向字段添加一个类

因此,我不确定哪些类型的HTML元素正在包装字段值,但使用您的示例,我会这样做:

<span class="<%=(Model.Subcontract.insurance_GL < 0 ? "red" : "black")%>"
  <%= Html.Encode(String.Format("{0:d}", Model.Subcontract.insurance_GL))%>
</span>