2014-11-22 33 views
0

我在GridView列中輸入了值。如何在TextChanged事件中添加列值?

將一些數據輸入到GridView後,我希望它計算一個特定列的總和。

我該如何做到這一點?

+2

請闡述lttle更 – 2014-11-22 12:20:41

+0

你想在列編輯值後網格列總? – andy 2014-11-22 12:31:03

+0

需要更多信息:) – 2014-11-22 12:44:04

回答

0

如果你需要的是顯示在一個DataGridView特定列的總和,那麼這可能幫助:

private void dataGridView2_CellValueChanged(object sender, DataGridViewCellEventArgs e) 
{ 
    if (e.ColumnIndex == 5) 
     textBox9.Text = CellSum().ToString(); 
} 

private double CellSum() 
{ 
    double sum = 0; 
    for (int i = 0; i < dataGridView2.Rows.Count; ++i) 
    { 
     double d = 0; 
     Double.TryParse(dataGridView2.Rows[i].Cells[5].Value.ToString(), out d); 
     sum += d; 
    } 
    return sum; 
} 

一些考慮採取:

  1. 確保數據你總結爲數字形式。因此,列類型需要是整數,雙精度或浮點數(但肯定不是nvarchar或varchar)。這將確保程序在求和值時不會進入錯誤狀態。

  2. 在上面的代碼中,取自StackOverflow中的另一個answer,該列中的值被解析爲double,以允許使用十進制數,而不是簡單的整數。

  3. 總和需要存儲在類型爲double的變量中。這取決於你如何處理它:無論你想將它存儲在數據庫的另一個地方,還是以標籤的形式顯示給用戶。

0

您在您的TextchangedEvent總結的價值觀,所以請儘量將

protected void txtintroId_TextChanged(object sender, EventArgs e) 
    { 
float total= 0; 
     foreach (GridViewRow gridViewRow in gridView.Rows) 
     { 

      lbltotal = (Label)gridViewRow.FindControl("lbltotal"); 

      float rowValue = 0; 
      if (float.TryParse(lbltotal.Text.Trim(), out rowValue)) 
       total += rowValue; 
     } 
     GridView1.FooterRow.Cells[3].Text = total.ToString(); 
    } 
相關問題