Bedingte Formatierung auf Zelle Wert
Ich habe forschen die bedingte Formatierung für GridViews alle über dem Platz, aber ich bin neu ASP.Net und eine harte Zeit. Dies ist der code, den ich gefunden habe, dass macht am meisten Sinn für mich:
protected void GridviewRowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
int CellValue = Convert.ToInt32(e.Row.Cells[2].Text);
if (CellValue >= 0)
{
e.Row.Cells[2].BackColor = System.Drawing.Color.Green;
}
if (CellValue < 0)
{
e.Row.Cells[2].BackColor = System.Drawing.Color.Red;
}
}
}
Des GridView-Steuerelements ist denkbar einfach: eine header-Zeile und drei Spalten mit je einer Zeile unter dem header mit einem Betrag in jeder Spalte. Muss ich nur die Daten der Zelle auf, die zweite Zeile, Dritte Spalte werden grün, wenn >=0 und rot, wenn <0.
Bin ich immer ein Falsches format auf der int CellValue = Zeile.
- Das sieht sicher richtig ist, was da passiert, es funktioniert nicht?
- was ist der Wert von e.Zeile.Zellen[2].Text? Ist es null? tut Reihe.Zellen[2] existieren? Ist es null? Denn das ist die Linie, die Sie haben Probleme mit ist, brechen die Linie.
- bei der Verwendung Konvertieren.ToInt32() null zurück, wenn der Wert null ist.
- könnten Sie die Meldung für die exception, die geworfen wird.
- Es bietet die FormatException Fehler war unhandled by user code. Eingabezeichenfolge hatte nicht korrekten format. Und es ist ein Wert da. Es ist der Unterschied in den Spalten eins und zwei die gleichen gridview
- Sie haben einen schlechten Wert im es so ist es probbly kommen durch so leer. Was ist der Wert? Siehe @Charles ' Kommentar unten
- Bitte löschen Sie die "neue" Frage-und-code von hier und den Beitrag als neue Frage, da es nicht mit "Bedingte Formatierung Auf die Zelle mit dem Wert C#"
- tut mir Leid, tun werden.
- Erhalten Sie eine bessere Belichtung für Ihr spezielles problem auf diese Weise. Menschen, die nicht dazu neigen, überprüfen Fragen als beantwortet markiert, um mehr Antworten! 🙂
Du musst angemeldet sein, um einen Kommentar abzugeben.
Versuchen, anstelle der
int CellValue =
Einklang mit unten einemRef:
http://www.johnchapman.name/asp-net-c-change-gridview-cell-background-color-based-on-value/
http://msdn.microsoft.com/en-us/library/4hx47hfe.aspx
Ich würde mit int.TryParse statt Konvertieren.ToInt32, und stellen Sie sicher, dass Ihr text eigentlich numerisch. Wenn es richtig aussieht, ein wahrscheinlicher Kandidat ist, dass der text Leerzeichen enthält.
Da Ihre negative zahlen formatiert sind, wie dies ($1,000.00). Überprüfen Sie Ihre Zeichenfolge für die Existenz der Klammer, und Sie können das format, die Farbe, die basierend auf diesem
oder noch besser
Haben Sie ungültige charactors in Ihren Werten. Streifen Sie Sie aus, und Sie sind gut zu gehen
Gibt es vielleicht einen besseren Weg, aber versuchen, dass jetzt
Edit: Entweder update zu meinem oben genannten änderungen oder den Einsatz verdoppeln.Parse()
Edit:
Besser, wenn Sie ein bool