2016-06-20 4 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

, что будет значение в 'ds.Tables [0] .Rows [я] [ "Достижение"]'? вы не можете сравнивать значения разных типов, используя '>' –

+0

> Проблема 94%. – Kason

+0

Что такое значение 'ds.Tables [0] .Rows [i] [" Achievement "]'? – Mairaj

ответ

1

Вам не разрешено делать сравнение Как то, что вы делаете. Лучше разобрать вывод в ds.Tables[0].Rows[i]["Achievement"], чтобы удвоить, а затем сравнить их с 94 не с 94%; А также проанализируйте двойное значение с ввода перед его сравнением. Я предлагаю использовать 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>"); 
+0

Thaks работает. Но почему мы используем «OUT»? – user3510330

+0

@ user3510330: 'double.TryParse()' даст преобразованный результат/вывод в 'outParameter' и возвращает логическое значение, представляющее состояние операций, я добавил ссылку в ответ –

+0

@ user3510330: Вы нужно больше разъяснений относительно этого ответа? Пожалуйста, не забудьте Отметить его как принятое, если оно решит вашу проблему. –