本文主要是介绍GridControl中单元格发生编辑后,所在行自动被勾选,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
之前遇到过这样的需求,数据发生修改后需要将修改的数据提交至数据库,所以需要获取哪些行数据发生过修改,于是有了如题所示的解决方案:
首先,定义GridControl的ValidateRow事件,这样的话在单元格发生修改后,该事件就会执行.代码如下:
private void gridView6_ValidateRow(object sender, DevExpress.XtraGrid.Views.Base.ValidateRowEventArgs e){//判断该行数据是发否发生修改bool flag = gridView6.FocusedRowModified;//数据发生修改后的操作if (flag){//设置该行被选中gridView6.SelectRow(gridView6.FocusedRowHandle);//以下是个人的逻辑操作ColumnView columnView = (ColumnView)sender;//计算费用总额//未支付decimal DormCost_ = Convert.ToDecimal(this.gridView6.GetRowCellValue(gridView6.FocusedRowHandle, columnView.Columns["UnPay"]));//本次支付decimal average_ = Convert.ToDecimal(this.gridView6.GetRowCellValue(gridView6.FocusedRowHandle, columnView.Columns["ThisPay"]));if (average_ > DormCost_){e.Valid = false;errorReason = 1;}else{gridView6.OptionsView.ShowFooter = true;//启用显示页脚willPay = 0;//清零数据foreach (var item in gridView6.GetSelectedRows()){IncoiceInfoSum incoice = (IncoiceInfoSum)gridView6.GetRow(item);willPay += incoice.ThisPay;}//索引为1的列gridView6.Columns[6].SummaryItem.DisplayFormat = "付款汇总:"+ willPay.ToString("0.##") + "";gridView6.CustomDrawFooterCell += new FooterCellCustomDrawEventHandler(this.gridView6_CustomDrawFooterCell);//单元格居中显示}//刷新gridView6.RefreshRow(gridView6.FocusedRowHandle);}}
这篇关于GridControl中单元格发生编辑后,所在行自动被勾选的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!