0

我需要页脚的gridview摘要...

 protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
 {
        decimal totalPrice = 0M;
        int totalItems = 0;
        if (e.Row.RowType == DataControlRowType.DataRow)
        {
            Label lblPrice = (Label)e.Row.FindControl("lblPrice");
            decimal price = Decimal.Parse(lblPrice.Text); 
            totalPrice += price;
            totalItems += 1; 
        }
        if (e.Row.RowType == DataControlRowType.Footer)
        {
            Label lblTotalPrice = (Label)e.Row.FindControl("lblTotalPrice");
            lblTotalPrice.Text = totalPrice.ToString(); 
        }
 }

但它不起作用。有任何想法吗?

4

2 回答 2

2

像这样将 totalPrice 和 totalItems 声明为全局变量

decimal totalPrice = 0M;
int totalItems = 0;
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
  {
    ...

   }
于 2013-03-21T06:30:20.857 回答
0

在您的方法totalPrice中声明在方法范围内,因此每一行都将从零开始。当涉及到页脚行时,它将再次为零。至少有两种选择:

  1. 在您的 SQL 语句中包含total = sum(price)列并将其绑定到您的页脚;
  2. 从您的方法移至totalPrice页面的私有字段。在这种情况下,您的代码应该可以工作
于 2013-03-21T06:30:29.410 回答