2016-06-20 4 views
2

Ich verwende das Platzhalter-Steuerelement zum Generieren der dynamischen Tabelle. Jetzt muss ich die Farbe des Spaltenwerts basierend auf der Bedingung festlegen, aber meine If-Bedingung funktioniert nicht. Wie es geht? Hier ist mein Code:Die Farbwertänderung der Spalte basiert auf der Bedingung

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

was der Wert wird in 'ds.Tables [0] .Rows [i] [ "Leistung"]'? Sie können keine Werte verschiedenen Typen vergleichen mit '>' –

+0

> 94% ist das Problem .. – Kason

+0

Was Wert von 'ds.Tables [0] .Rows ist [i] [ "Leistung"]'? – Mairaj

Antwort

1

Sie dürfen keinen Vergleich tun, wie Sie tun. Besser Sie die Ausgabe in ds.Tables[0].Rows[i]["Achievement"] analysieren zu verdoppeln und dann vergleichen sie mit 94 nicht mit 94%; Und parsen Sie auch den doppelten Wert von der Eingabe, bevor Sie ihn vergleichen. Ich schlage vor, double.TryParse() zum Vergleich zu verwenden

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 zu tun, es funktioniert. Aber warum benutzen wir 'OUT'? – user3510330

+0

@ user3510330: Die 'Double.TryParse()' das konvertierte Ergebnis/Ausgabe an den 'outParameter' geben und gibt einen booleschen Wert, der den Status der Vorgänge darstellt, habe ich einen Link in der Antwort –

+0

@ user3510330 hinzugefügt: Haben Sie Brauchen Sie mehr Klarheit über diese Antwort? Bitte vergiss nicht, es als akzeptiert zu markieren, wenn es dein Problem löst. –

Verwandte Themen