在gridview中选中复选框的同时计算金额

时间:2013-12-14 09:58:54

标签: c# asp.net valueconverter

protected void ChkPayment_CheckChanged(object sender, EventArgs e)
{
    foreach (GridViewRow gvrow in grvPaymentList.Rows)
    {
        var Selection = gvrow.FindControl("ChkSelected") as CheckBox;

        decimal Total=0;
        decimal abc=0;
        if (Selection.Checked)
        {
            var  moviePrice = gvrow.FindControl("MoviePrice") as Label ;
            abc = Convert.ToDecimal(moviePrice.Text);
        }
        Total = Total + abc;
        lblAmount.Text = Total.ToString();
    }        
}

检查CheckBox并总计标签中的金额。我怎么能实现它,因为我从字符串转换为十进制时出现错误。

1 个答案:

答案 0 :(得分:3)

你需要解决的两件事:

  1. moviePrice变量的类型为Label,因此您无法将其转换为Decimal。你应该使用moviePrice.Text。
  2. 计算总数时,应为Total = Total + abc。
  3. 编辑:需要在循环外声明Total变量。现在发生的是你在循环中声明变量,所以它在循环的每次迭代中都会被重置。