DevExpressGridViewWatcher(IGridDataWatcher接口)防止用户修改业务主键列
如下图所示,工序编码已经在业务单据使用,修改工序编码要提示用户:
解决方案
绑定表格的 CellValueChanged 事件
C# 全选
gvSummary.CellValueChanged += GvSummary_CellValueChanged;
C# 全选
private void GvSummary_CellValueChanged(object sender, DevExpress.XtraGrid.Views.Base.CellValueChangedEventArgs e)
{
if (e.Column == colProcessId)
{
var row = gvSummary.GetObject<tb_Process>();
//已经使用的工序,不能更改提示,这块限制一下
if (_Watcher.IsDbEntity(row.isid))
{
var old = _Watcher.OriginalData.Where(w => w.isid == row.isid).FirstOrDefault();
//判断是否修改的工序,并且该工序在其他业务有使用
if (old.ProcessId != row.ProcessId && _BLL.IsUsed(old.ProcessId))
{
row.ProcessId = old.ProcessId;
gvSummary.UpdateCurrentRow();
Msg.Warning("当前工序已经使用,不可变更工序编码!");
}
}
}
}
DevExpressGridViewWatcher(IGridDataWatcher接口)
使用说明:
https://www.cscode.net/archive/newdoc/416688346595333.html
版权声明:本文为开发框架文库发布内容,转载请附上原文出处连接
NewDoc C/S框架网