我有了一個名爲Amount
。我列網格視圖有textbox
顯示amount
列的gridview
的總和,但我需要知道當項目gridview
是inserted
changed
和deleted
,因爲我需要更新textbox
注意插入刪除和更新數據到GridView控件在C#
有沒有人來處理這樣的情況。我想知道我應該使用哪個數據網格事件,
我使用Windows窗體應用程序
問候
我有了一個名爲Amount
。我列網格視圖有textbox
顯示amount
列的gridview
的總和,但我需要知道當項目gridview
是inserted
changed
和deleted
,因爲我需要更新textbox
注意插入刪除和更新數據到GridView控件在C#
有沒有人來處理這樣的情況。我想知道我應該使用哪個數據網格事件,
我使用Windows窗體應用程序
問候
您可以使用RowsRemoved,RowsAdded和CellValueChanged事件。
謝謝,請您給我更多關於CellValueChanged的細節,這意味着每一行中的每個單元格在更改此事件時都會被調用? –
@EA它會在用戶編輯任何單元格時觸發。我已經更新msdn鏈接,看看是否有幫助。 –
,就像@SriramSakthivel所說的只是使用這些事件,當它們被解僱時,調用數據庫並修改數據。 ;) –
更新
您可以使用這些假設你的用戶只添加和一次刪除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();
}
使用RowDeleted,RowUpdated,RowCreated事件? – Tsukasa
我使用Windows窗體應用程序而不是Web窗體,我發現行添加和行刪除,但沒有行更改? –
對不起,我在想asp。您可以使用CellValueChanged – Tsukasa