在我的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)
}
答案 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
中进行