2016-06-20 19 views
2

動的テーブルを生成するためのプレースホルダコントロールを使用します。今度は、条件に基づいて列の値の色を設定する必要がありますが、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

ためdouble.TryParse()を使用することをお勧め? '> ' –

+0

> 94%を使って異なるタイプの値を比較することはできません。 – Kason

+0

' ds.Tables [0] .Rows [i] ["Achievement"] 'の値は何ですか? – Mairaj

答えて

1

あなたは何をしているかのような比較を行うことを許可されていません。ここに私のコードです。 ds.Tables[0].Rows[i]["Achievement"]の出力を2倍に解析し、94と比較してください。94%ではありません。また、それを比較する前に、入力からdouble値を解析します。私は `ds.Tables [0] .Rows [i]の[ "達成"]`の値がどうなるかを比較

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>"); 
+0

Thaks働いています。しかし、なぜ私たちは 'OUT'を使うのですか? – user3510330

+0

@ user3510330: 'double.TryParse()'は変換された結果/出力を 'outParameter'に渡し、操作のステータスを表すブール値を返します。回答にリンクを追加しました –

+0

@ user3510330:Do youこの回答に関するもう少し明確な説明が必要ですか?あなたの問題を解決すれば、それを合格とマークすることを忘れないでください。 –

関連する問題