我有問題。這裏是我的問題:更新DataGridView內部的數量不會改變合計
我得到了我的DataGridView是這樣的:
SM0001 for the Product Code, 100 for the Quantity, AS 5 for the Description, 10,000 for the Sub Total, and 1,000,000 for the Total
以上是正確的,因爲10,000
次100
我們得到1,000,000
我添加數據到DataGridView,當數據已被添加到DataGridView,我點擊該DataGridView中的編輯,當我改變一些值在它上面,它會被更改和更新。但是,問題是,當我試圖從100
「數量」更改爲500
,它並沒有改變Total
的Total
假設更新和改變Quantity * Sub Total
太基礎的(因爲我改變Quantity
)
如何是這樣嗎?
這裏是上面當我試圖從DataGridView更新我的問題的代碼:
private void DataGridViewCalculation(object sender, EventArgs e)
{
for (int i = 0; i < dataGridView1.Rows.Count; i++)
{
int _quantity = Convert.ToInt32(this.dataGridView1.Rows[i].Cells[1].Value);
int _subTotal = Convert.ToInt32(this.dataGridView1.Rows[i].Cells[3].Value);
int _total = Convert.ToInt32(_quantity * _subTotal);
this.dataGridView1.Rows[i].Cells[4].Value = _total;
}
dataGridView1.DataSource = null;
dataGridView1.DataSource = _ds.Tables[0];
}
這是我的問題的上述後和前我從100改變量至500的屏幕截圖:
截圖上述顯示當我還沒有改變到Quantity
500
(仍然在100)
上面的截圖顯示,當我已經改變了Quantity
到500
,但Total
還是一樣Quantity 100
基本上,我希望當DataGridView的用戶點擊修改,在其所做的更改(假設用戶在DataGridView中對Quantity
進行更改,DataGridView中的Total
也應該改變)
EDITED:
dataGridView1.CellValueChanged += new DataGridViewCellEventHandler(this.DataGridViewCalculation);
private void DataGridViewCalculation(object sender, DataGridViewCellEventArgs e)
{
if (e.ColumnIndex.Equals(1))
{
int _total = Convert.ToInt32(dataGridView1["Quantity", e.RowIndex].Value) * Convert.ToInt32(dataGridView1["SubTotal", e.RowIndex].Value);
dataGridView1["Total", e.RowIndex].Value = _total.ToString();
}
}
注意:
編輯的代碼仍然沒有工作時,我試圖改變Quantity
值時,Total
仍然相同。
先生,我要如何改變'如果(e.ColumnIndex.Equals( 「數量列索引」))?'我應該改變' 「」'什麼?該程序表示它是'對象' – Kaoru
@Kaoru列數量列的索引,如果其第三列在網格中則索引應該是2.只給出沒有雙路qoutes的數字。 – Kurubaran
我已經做了這個先生,但是當我運行該程序並在添加到DataGridView後更改'Quantity'值時,'Total'仍然保持不變。不會根據當前的'Quantity'(仍然是之前的'Quantity',這是我添加到DataGridView之後還沒有編輯DataGridView),我將在上面的問題中編輯代碼。 – Kaoru