列的值颜色根据条件而变化

时间:2016-06-20 03:22:28

标签: c# html html-table

我使用占位符控件来生成动态表。现在我需要根据条件制作一个列值的颜色,但我的if条件不起作用。怎么做?这是我的代码:

for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
{
 strResults.Append("<tr style='color: black;'>");
 strResults.Append("<td>" + ds.Tables[0].Rows[i]["Description"] + "</td>");
 strResults.Append("<td>" + ds.Tables[0].Rows[i]["Target"] + "</td>");
 strResults.Append("<td>" + ds.Tables[0].Rows[i]["Actual"] + "</td>");
 if(ds.Tables[0].Rows[i]["Achievement"] >94% )
    {
 strResults.Append("<td style='color: green;'>" + ds.Tables[0].Rows[i]["Achievement"] + "</td>");
  }
 strResults.Append("</tr>");
  }

1 个答案:

答案 0 :(得分:1)

你不能做比较就像你在做什么。最好将ds.Tables[0].Rows[i]["Achievement"]中的输出解析为double,然后将其与94进行比较,而不是94%;并且在比较之前还解析输入的double值。我建议使用double.TryParse()进行比较

double Achievement = 0.0;

if (double.TryParse(ds.Tables[0].Rows[i]["Achievement"].ToString().Replace("%",""), out Achievement) 
    && Achievement > 94)
{
    strResults.Append("<td style='color: green;'>" + ds.Tables[0].Rows[i]["Achievement"] + "</td>");
}            
else
{
    strResults.Append("<td>" + ds.Tables[0].Rows[i]["Achievement"] + "</td>");
}
strResults.Append("</tr>");