C# dataGridView中怎么样动态改变列的值
我的dataGridView中的表有10列,其中第3列(可编辑)是“数量”,第5列是“价格”,第8列是“总价”,总价=数量*价格,我现在要直接改变dataGridView...
我的dataGridView中的表有10列,其中第3列(可编辑)是“数量”,第5列是“价格”,第8列是“总价”,总价=数量*价格,我现在要直接改变dataGridView中数量那一列的某个值,同一行的总价也发生改变,(是直接在dataGridView的表中编辑修改数量那一列,而不是通过其他控件)这样可以实现吗??哪位高手教下啊!!!
展开
3个回答
展开全部
DataGridView的CelEndEdit事件可以满足你的要求,
private void dataGridView1_CellEndEdit(object sender, DataGridViewCellEventArgs e)
{
if (e.ColumnIndex == 2)
{
try
{
double price = Convert.ToDouble(dataGridView1.Rows[e.RowIndex].Cells[4].Value);
int count = Convert.ToInt32(dataGridView1.Rows[e.RowIndex].Cells[2].Value);
double total = price * count;
dataGridView1.Rows[e.RowIndex].Cells[7].Value = total;
}
catch
{
return;
}
}
}
private void dataGridView1_CellEndEdit(object sender, DataGridViewCellEventArgs e)
{
if (e.ColumnIndex == 2)
{
try
{
double price = Convert.ToDouble(dataGridView1.Rows[e.RowIndex].Cells[4].Value);
int count = Convert.ToInt32(dataGridView1.Rows[e.RowIndex].Cells[2].Value);
double total = price * count;
dataGridView1.Rows[e.RowIndex].Cells[7].Value = total;
}
catch
{
return;
}
}
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
如果是在 winform 中,使用RowPrePaint
this.dataGridView1.RowPrePaint+=new DataGridViewRowPrePaintEventHandler(dataGridView1_RowPrePaint);
定义
private void dataGridView1_RowPrePaint(object sender, DataGridViewRowPrePaintEventArgs e)
{
if (e.RowIndex > dataGridView1.Rows.Count - 1) return;
DataGridViewRow dgr = dataGridView1.Rows[e.RowIndex];
// dgr.Cells[6].Value 第7个单元格,
//在此重新计算
}
如果是在web中,使用RowDataBound
this.dataGridView1.RowPrePaint+=new DataGridViewRowPrePaintEventHandler(dataGridView1_RowPrePaint);
定义
private void dataGridView1_RowPrePaint(object sender, DataGridViewRowPrePaintEventArgs e)
{
if (e.RowIndex > dataGridView1.Rows.Count - 1) return;
DataGridViewRow dgr = dataGridView1.Rows[e.RowIndex];
// dgr.Cells[6].Value 第7个单元格,
//在此重新计算
}
如果是在web中,使用RowDataBound
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
问一下,你的总价是怎么绑定上去的,如果有公式,那你改变了之后,在重新绑定一下,就行。如果没有,在RowDataBound中写一下他的计算公式,就是获取列中的值来计算,在UpdateDataBound中再写一下重新绑定。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询