Использование ASP.NET 4 с C#.
У меня есть DetailsView
, который я заполняю с помощью кода программной части в C#, в основном привязывая DataTable
из SQL Server к DetailsView
. Я хотел бы изменить цвет значений в представлении сведений, чтобы положительные значения были зелеными, нули - по умолчанию, а отрицательные значения - красным. Как лучше всего это сделать?
ОБНОВЛЕНИЕ
@Jay Я пробовал этот код:
private System.Drawing.Color GetColorValue(decimal value)
{
if (value > 0)
return System.Drawing.Color.Green;
else if (value < 0)
return System.Drawing.Color.Red;
return System.Drawing.Color.White;
}
protected void dtlOpenTrade_DataBound(object sender, EventArgs e)
{
foreach (BoundField field in dtlOpenTrade.Fields)
{
field.ItemStyle.BackColor = GetColorValue((decimal)dtlOpenTrade.DataItem.GetType().GetProperty(field.DataField).GetValue(dtlOpenTrade.DataItem, null));
}
}
Но я получаю эту ошибку: System.NullReferenceException: Object reference not set to an instance of an object.
Есть идеи?
ОБНОВЛЕНИЕ 2
Я решил это с помощью этого кода, есть смысл?
void RenderDetailsViewColour(DetailsView dtl)
{
foreach (DetailsViewRow row in dtl.Rows)
{
if (row.Cells[0].Text != "TradeId")
{
row.Cells[1].BackColor = GetColorValue(Convert.ToDecimal(row.Cells[1].Text));
}
}
}