Asp Dot Net中的折扣计算

时间:2011-12-10 06:07:20

标签: c# asp.net

在我的gridview中,我有卖价,数量,折扣,净额。用户输入数量和折扣,结果应显示在netamount列中,我正在尝试使用此代码它不工作,最后一行我减去它给出错误的值请帮我解决问题.. ... 我在Text changed事件中写这段代码.....

foreach (GridViewRow row in GridView1.Rows)
    {
        TextBox txtSerAmt = (TextBox)row.FindControl("TxtServiceAmount");
        TextBox txtQuantity = (TextBox)row.FindControl("txtQuantity");
        TextBox txtdsAmount = (TextBox)row.FindControl("txtdsAmount");
        TextBox TxtNetAmt = (TextBox)row.FindControl("TxtNetAmt");

        if (txtSerAmt != null && txtQuantity != null && txtdsAmount != null)
        {
           TxtNetAmt.Text = (((
           Convert.ToDouble(txtSerAmt.Text) * Convert.ToDouble(txtQuantity.Text))) * Convert.ToDouble(txtdsAmount.Text)/100).ToString();
        }
         txttotal.text = Convert.ToDouble(txtTotal.Text) - Convert.ToDouble(txtNetAmt.Text)
    }

3 个答案:

答案 0 :(得分:1)

txttotal.text = (Convert.ToDouble(txtTotal.Text) - Convert.ToDouble(txtNetAmt.Text)).ToString()

你得到错误的原因是txttotal.text是一个字符串类型,你的计算返回一个数字类型。所以你需要转换为由ToString方法执行的字符串

答案 1 :(得分:0)

密切关注最后一行: txttotal txtTotal ,以及 txtNetAmt 被称为 TxtNetAmt 早些时候。

有一些拼写上的差异。

 **txttotal**.text = Convert.ToDouble(**txtTotal**.Text) - Convert.ToDouble(**txtNetAmt**.Text)

答案 2 :(得分:0)

在字符串中进行双重转换首先检查获取值是否为null。如果null意味着手动放置' 0' 0否则,它应该会增加错误,并且在减去最多之后将其转换为字符串,例如" Masoomian"回答

TextBox TxtNetAmt = (TextBox)row.FindControl("TxtNetAmt");

txttotal.text = (Convert.ToDouble(txtTotal.Text) - 
Convert.ToDouble(txtNetAmt.Text)).ToString();

你应该检查所有FindControl,控件ID是否正确。此计算仅在Rowbound Event

中进行