DevExpress GridView单元格CellValueChanged事件详解
DevExpress GridView单元格CellValueChanged事件详解
DevExpress GridView单元格CellValueChanged事件详解,
参考采购订单,销售订单开发实例。

GridView的CellValueChanged事件:当用户修改单元格的值时立即触发。
开发框架应用场景:
OnCellValueChanged事件:
OnCellValueChanged事件的CellValueChangedEventArgs参数:
通过此参数我们可以获取当前修改的列对象、资料行号以及单元格的值。

:


CellValueChangedEventHandler事件描述:Fires immediately after a cell's value has been changed.
C# Code:
//
// 摘要:
// Fires immediately after a cell's value has been changed.
[DevExpressXtraGridLocalizedDescriptionAttribute("ColumnViewCellValueChanged")]
[DXCategory("Property Changed")]
public event CellValueChangedEventHandler CellValueChanged;
// 摘要:
// Fires immediately after a cell's value has been changed.
[DevExpressXtraGridLocalizedDescriptionAttribute("ColumnViewCellValueChanged")]
[DXCategory("Property Changed")]
public event CellValueChangedEventHandler CellValueChanged;
开发框架应用场景:
开发企业管理系统比如ERP系统的采购订单,明细表通常有采购数量、单价、金额等字段。当用户修改数量或单价时,要自动计算金额。
金额字段是只读的,不可直接修改。
C/S开发框架参考代码:
C# Code:
gvDetail.CellValueChanged += new DevExpress.XtraGrid.Views.Base.CellValueChangedEventHandler(OnCellValueChanged); //表格值改变
//来源:C/S框架网 | www.csframework.com | QQ:23404761
//来源:C/S框架网 | www.csframework.com | QQ:23404761
C# Code:
private void OnCellValueChanged(object sender, CellValueChangedEventArgs e)
{
if ((e.Column == colD_Price) || (e.Column == colD_Quantity))
{
decimal price = ConvertEx.ToDecimal(gvDetail.GetDataRow(gvDetail.FocusedRowHandle)[tb_POs.Price]);//单价
decimal quantity = ConvertEx.ToDecimal(gvDetail.GetDataRow(gvDetail.FocusedRowHandle)[tb_POs.Quantity]);//数量
decimal amt = Math.Round(price * quantity, 2, MidpointRounding.ToEven);//金额=数量*单价
//计算本产品的采购金额
gvDetail.SetFocusedRowCellValue(colD_Amount, amt);
gvDetail.UpdateCurrentRow();//更新当前资料行
gvDetail.UpdateTotalSummary();//更新合计
//更新主表的合计金额
decimal totalAmt = ConvertEx.ToDecimal(colD_Amount.SummaryItem.SummaryValue);
this.SetEditorBindingValue(txtAmount, totalAmt, true);
}
}
//来源:C/S框架网 | www.csframework.com | QQ:23404761
{
if ((e.Column == colD_Price) || (e.Column == colD_Quantity))
{
decimal price = ConvertEx.ToDecimal(gvDetail.GetDataRow(gvDetail.FocusedRowHandle)[tb_POs.Price]);//单价
decimal quantity = ConvertEx.ToDecimal(gvDetail.GetDataRow(gvDetail.FocusedRowHandle)[tb_POs.Quantity]);//数量
decimal amt = Math.Round(price * quantity, 2, MidpointRounding.ToEven);//金额=数量*单价
//计算本产品的采购金额
gvDetail.SetFocusedRowCellValue(colD_Amount, amt);
gvDetail.UpdateCurrentRow();//更新当前资料行
gvDetail.UpdateTotalSummary();//更新合计
//更新主表的合计金额
decimal totalAmt = ConvertEx.ToDecimal(colD_Amount.SummaryItem.SummaryValue);
this.SetEditorBindingValue(txtAmount, totalAmt, true);
}
}
//来源:C/S框架网 | www.csframework.com | QQ:23404761
OnCellValueChanged事件的CellValueChangedEventArgs参数:
C# Code:
public class CellValueChangedEventArgs : EventArgs
{
DevExpress.XtraGrid.Views.Base.CellValueChangedEventArgs.Column
DevExpress.XtraGrid.Views.Base.CellValueChangedEventArgs.Value
public CellValueChangedEventArgs(int rowHandle, GridColumn column, object value);
//
// 摘要:
// Gets the column that contains the processed cell.
public GridColumn Column { get; }
//
// 摘要:
// Gets the handle of the row that contains the processed cell.
public int RowHandle { get; }
//
// 摘要:
// Gets the current cell value.
public object Value { get; }
}
//来源:C/S框架网 | www.csframework.com | QQ:23404761
{
DevExpress.XtraGrid.Views.Base.CellValueChangedEventArgs.Column
DevExpress.XtraGrid.Views.Base.CellValueChangedEventArgs.Value
public CellValueChangedEventArgs(int rowHandle, GridColumn column, object value);
//
// 摘要:
// Gets the column that contains the processed cell.
public GridColumn Column { get; }
//
// 摘要:
// Gets the handle of the row that contains the processed cell.
public int RowHandle { get; }
//
// 摘要:
// Gets the current cell value.
public object Value { get; }
}
//来源:C/S框架网 | www.csframework.com | QQ:23404761
通过此参数我们可以获取当前修改的列对象、资料行号以及单元格的值。

:

参考文档:
修改单元格关联更新其它列的值,Dev GridView组件OnCellValueChanged事件实现
DevExpress GridView设置单元格网格线颜色|C/S框架网
DevExpress GridView表格CustomUnboundColumnData事件异步加载图片
C# GridView 自定义单元格的背景色
踩坑日记 | DevExpress GridView.GetSelectedRows方法返回无效的RowHandle行号|C/S开发框架
DevExpress GridView设置焦点行颜色
C# DataGridView组件自动添加弹出菜单(ContextMenuStrip)复制单元格的值
DevExpress GridView 表格内嵌ButtonEdit按钮列图片按钮及Click事件
DevExpress GridView获取主从表,主子表,子级二层表的当前记录(Master/Detail)
DevExpress GridView在只读状态下如何隐藏表格的按钮EditorShowMode|ShowButtonMode
DevExpress GridView表格记录位置调整,实现DataRow记录排序
DevExpress GridControl实现右键弹出菜单复制单元格
GridView不能编辑单元格的值受3个参数影响
解决:DevExpress.GridControl.GridView表格导出乱码
GridControl/GridView 单元格的值输入非法自定义错误提示文本
C# DataGridView 自动给新增记录当前单元格赋值
修改单元格关联更新其它列的值,Dev GridView组件OnCellValueChanged事件实现
DevExpress GridView设置单元格网格线颜色|C/S框架网
DevExpress GridView表格CustomUnboundColumnData事件异步加载图片
C# GridView 自定义单元格的背景色
踩坑日记 | DevExpress GridView.GetSelectedRows方法返回无效的RowHandle行号|C/S开发框架
DevExpress GridView设置焦点行颜色
C# DataGridView组件自动添加弹出菜单(ContextMenuStrip)复制单元格的值
DevExpress GridView 表格内嵌ButtonEdit按钮列图片按钮及Click事件
DevExpress GridView获取主从表,主子表,子级二层表的当前记录(Master/Detail)
DevExpress GridView在只读状态下如何隐藏表格的按钮EditorShowMode|ShowButtonMode
DevExpress GridView表格记录位置调整,实现DataRow记录排序
DevExpress GridControl实现右键弹出菜单复制单元格
GridView不能编辑单元格的值受3个参数影响
解决:DevExpress.GridControl.GridView表格导出乱码
GridControl/GridView 单元格的值输入非法自定义错误提示文本
C# DataGridView 自动给新增记录当前单元格赋值
其它资料:
什么是C/S结构? | C/S框架核心组成部分 | C/S框架-WebService部署图 | C/S框架-权限管理 | C/S结构系统框架 - 5.1旗舰版介绍 | C/S结构系统框架 - 功能介绍 | C/S结构系统框架 - 产品列表 | C/S结构系统框架 - 应用展示(图) | 三层体系架构详解 | C/S架构轻量级快速开发框架 | C/S框架网客户案例 | WebApi快速开发框架 | C/S框架代码生成器 | 用户授权注册软件系统 | 版本自动升级软件 | 数据库底层应用框架 | CSFramework.CMS内容管理系统 |
什么是C/S结构? | C/S框架核心组成部分 | C/S框架-WebService部署图 | C/S框架-权限管理 | C/S结构系统框架 - 5.1旗舰版介绍 | C/S结构系统框架 - 功能介绍 | C/S结构系统框架 - 产品列表 | C/S结构系统框架 - 应用展示(图) | 三层体系架构详解 | C/S架构轻量级快速开发框架 | C/S框架网客户案例 | WebApi快速开发框架 | C/S框架代码生成器 | 用户授权注册软件系统 | 版本自动升级软件 | 数据库底层应用框架 | CSFramework.CMS内容管理系统 |
在线客服
