2010-12-03 111 views
0

我正在計算gridview的textboxchanged事件中的文本框的gridview價格字段值的總數。但是當光標來到這一行時:total +=Convert.ToDecimal(mytextbox);得到異常:輸入字符串的格式不正確。這裏是我的gridviewtext改變事件代碼:Gridview文本更改事件

protected void txtPrice_OnTextChanged(object sender, System.EventArgs e) 
{ 
    decimal total = 0.0m; 
    foreach (GridViewRow gvr in GrdTabRow.Rows) 

    { 
     if (gvr.RowType == DataControlRowType.DataRow) 
     { 
      TextBox tb = gvr.FindControl("txtPrice") as TextBox; 
      string mytextbox = tb.ToString(); 
      if (!mytextbox.Equals("") && mytextbox != null) 
      { 
       total +=Convert.ToDecimal(mytextbox); 
      } 
     } 
     GrdTabRow.FooterRow.Cells[2].Text = total.ToString(); 
    } 
} 
+0

您的文本框中是否有空格,逗號或貨幣符號?轉換爲十進制期望您嘗試轉換的字符串是雙精度的有效表示。 – jvanrhyn 2010-12-03 04:50:25

+0

不,它沒有任何saplce或currecny符號..它在gridviwe內的名義文本框 – Jims 2010-12-03 05:05:59

回答

2

嘗試:

string mytextbox = tb.Text.ToString(); 
total += Convert.ToDecimal(mytextbox); 

的ToString()我相信返回的對象表示其不同對象之間並不總是reprsent對象的特定值。有時候它只會返回對象的全限定名。Text成員返回TextBox的值。 ToString()應該是可選的