我使用占位符控件来生成动态表。现在我需要根据条件制作一个列值的颜色,但我的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>");
}
答案 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>");