2014-07-17 28 views
1

我有了一個名爲Amount。我列網格視圖有textbox顯示amount列的gridview的總和,但我需要知道當項目gridviewinsertedchangeddeleted,因爲我需要更新textbox注意插入刪除和更新數據到GridView控件在C#

有沒有人來處理這樣的情況。我想知道我應該使用哪個數據網格事件,

我使用Windows窗體應用程序

問候

+1

使用RowDeleted,RowUpdated,RowCreated事件? – Tsukasa

+0

我使用Windows窗體應用程序而不是Web窗體,我發現行添加和行刪除,但沒有行更改? –

+1

對不起,我在想asp。您可以使用CellValueChanged – Tsukasa

回答

3

您可以使用RowsRemovedRowsAddedCellValueChanged事件。

+0

謝謝,請您給我更多關於CellValueChanged的細節,這意味着每一行中的每個單元格在更改此事件時都會被調用? –

+1

@EA它會在用戶編輯任何單元格時觸發。我已經更新msdn鏈接,看看是否有幫助。 –

+0

,就像@SriramSakthivel所說的只是使用這些事件,當它們被解僱時,調用數據庫並修改數據。 ;) –

2

更新

您可以使用這些假設你的用戶只添加和一次刪除1行。還使用linq語句添加了一個方法來總結您的金額並將其分配給文本框。

private void dataGridView1_CellValueChanged(object sender, DataGridViewCellEventArgs e) 
{ 
    if (e.ColumnIndex.Equals(dataGridView1.Columns["Amount"].Index)) 
    { 
     UpdateTotal(); 
    } 
} 

private void dataGridView1_UserAddedRow(object sender, DataGridViewRowEventArgs e) 
{ 
    UpdateTotal(); 
} 

private void dataGridView1_UserDeletedRow(object sender, DataGridViewRowEventArgs e) 
{ 
    UpdateTotal(); 
} 

private void UpdateTotal() 
{ 
    textBox1.Text = (dataGridView1.Rows.Cast<DataGridViewRow>() 
      .Sum(t => Convert.ToInt32(t.Cells["Amount"].Value))).ToString(); 
} 
相關問題