protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
// 确认"库存量"字段的值。
//
// 我们透过一个 DataBinder.Eval() 调用从将被绑定至 GridView 数据列的
// 数据中取得"库存量"字段的值,传递给 DataBinder.Eval() 的第一个参
// 数是将被绑定至 GridView 数据列的数据(也就是 e.Row.DataItem),
// 传递给 DataBinder.Eval() 的第二个参数则是字段名称。
decimal stock =
Convert.ToDecimal(DataBinder.Eval(e.Row.DataItem, "库存量"));
if (stock <= 0)
{
// 如果库存量小于或等于 0,则将该资料列的背景色设定成红色。
e.Row.BackColor = Color.Red;
}
decimal totalMoney =
Convert.ToDecimal(DataBinder.Eval(e.Row.DataItem, "订货金额"));
if (totalMoney > 0)
{
// 如果订货金额大于 0,则将该资料列的背景色设定成黄色。
e.Row.BackColor = Color.Yellow;
}
// 累加订货金额并设定给变量 orderTotal。
orderTotal += totalMoney;
}
}
// 创建一个变量来存储订货金额加总。
private decimal orderTotal = 0.0m;
protected void GridView1_RowCreated(object sender, GridViewRowEventArgs e)
{
// 提取当前的资料列。
GridViewRow row = e.Row;
// 如果正被创建的数据列是一个页尾,则更新数据行加总。
if (row.RowType == DataControlRowType.Footer)
{
// 取得页尾当中的标签控件 OrderTotalTotal 。
Label total = (Label)(e.Row.FindControl("OrderTotalLabel"));
// 以货币格式来显示订货金额加总。
if (total != null)
{
total.Text = orderTotal.ToString("c");
}
}
}