我有个问题。这是我的问题:
我的 DataGridView 中有这样的东西:
Product Code || Quantity || Description || SubTotal || Total || ....... (and so on)
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 中单击 EDIT 并对其进行更改(假设用户Quantity
在 DataGridView 中进行更改,DataGridView 中的Total
也应该更改)
编辑:
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
仍然保持不变。