2011-12-10 96 views
0

在我的gridview中,我有sellprice,quantity,discount,netamount。用戶輸入數量和折扣,結果應該顯示在netamount列中,我試着用這個代碼它不工作,最後一行我減去它給的錯誤值,請幫我解決這個問題.. ... 我寫在文本改變的情況下,本代碼.....在Asp Dot Net中的折扣計算

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) 
    } 
+1

錯誤消息是什麼? – Hoque

+0

密切觀察最後一行並檢查文本框名稱並進行相應更正。 – Hoque

+0

什麼是'txttotal.text'?它是'GridView'中的一個列還是一個不同的'TextBox'?如果它是一列,那麼首先找到列。然後檢查列的值,如果它是'null',則使其爲0並進行計算。你能發佈你的錯誤消息以獲得更多的解釋嗎? – Pooja

回答

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

爲什麼你所得到的錯誤是txttotal.text原因是你的計算返回一個字符串類型數字類型。因此您需要將其轉換爲由ToString方法執行的字符串

+0

我沒有得到折扣結果,並在最後一行我試圖做減法它給錯誤不能將int轉換爲字符串..... – Rizwan

+0

「錯誤不能將int轉換爲字符串」,這意味着您必須將結果轉換爲串。將結果賦值給雙變量,然後將雙精度賦值給字符串,然後將字符串賦值給txttotal.text – Masoomian

+0

如何使用上述代碼實現減法運算,如果您事先與我分享您的知識,我將不勝感激。 ! – Rizwan

0

仔細觀察最後一行:有txttotaltxtTotal,以及txtNetAmt在早期行中提及的作爲TxtNetAmt

有一些拼寫差異。

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

** txttotal ** .text = Convert.ToDouble(** txtTotal ** .Text) - Convert.ToDouble(** TxtNetAmt ** .Text) – Rizwan

+0

@Rizwan你想說txttotal和txtTotal是兩個不同的文本框? – Hoque

0

在字符串中進行雙倍轉換,首先檢查獲取值是否爲null。如果null表示手動把「0」在其他方面,它應該上升錯誤並減去最後花葯一件事轉換爲字符串,如「Masoomian」答案

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

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

,你應該檢查所有的FindControl,控制ID是正確的。並且此計算僅在Rowbound事件中執行