【发布时间】:2011-06-20 13:51:22
【问题描述】:
将 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));
}
}
}
【问题讨论】:
标签: c# asp.net detailsview