1
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();
    }        
}

选中复选框并合计标签中的金额。由于从字符串转换为十进制时出现错误,我该如何实现它。

4

1 回答 1

3

您需要在此处修复 2 件事:

  1. moviePrice 变量属于标签类型,因此您无法将其转换为十进制。您应该改用moviePrice.Text。
  2. 当你计算总数时,它应该是 Total = Total + abc。

编辑: Total 变量需要在循环外声明。现在发生的事情是您在循环内声明了变量,因此它在循环的每次迭代期间都会被重置。

于 2013-12-14T10:03:44.750 回答