我正在使用RadGridView
来显示正在销售的商品。在同一行中,我还有一个“数量”,“单价”,“总价”栏。
当用户更改“数量”列的值时,我想通过将“数量”乘以“项目价格”来触发将计算“总价”列值的事件
如何添加仅在“数量”列的值更改时才会触发的事件?
我试过这个没有影响
private void radGridView1_CurrentRowChanged(object sender, CurrentRowChangedEventArgs e) {
double itemPrice = Convert.ToDouble(e.CurrentRow.Cells["Unit Price"].Value);
int itemQty = Convert.ToInt32(e.CurrentRow.Cells["Qty"].Value);
double totalPrice = itemPrice * itemQty;
e.CurrentRow.Cells["Total Price"].Value = totalPrice.ToString();
}
答案 0 :(得分:2)
订阅CellEndEdit
事件(如果需要,可以在构造函数中):
radGridView1.CellEndEdit += (s, e) =>
{
if (e.Column == radGridView1.Columns["Qty"])
{
var row = radGridView1.CurrentRow.Cells;
row["Total Price"].Value =
(int)row["Qty"].Value * (decimal)row["Item Price"].Value;
}
};
如果价格不是小数等,您可能需要添加一些错误处理,并转换为不同的类型。
您也可以将其拆分为单独的方法;用一个简短的方法,我有时会发现这个"内联"方便阅读和维护。 YMMV。