private void gridView1_ValidatingEditor(object sender, DevExpress.XtraEditors.Controls.BaseContainerValidateEditorEventArgs e)
{
var _Gdv = gridView1;
var _currentRowData = _Gdv.GetFocusedDataRow();
if (_currentRowData == null) return;
var view = gridView1;
if (_Gdv.ActiveEditor is GridLookUpEdit)
{
if (_Gdv.FocusedColumn.View.EditingValue == null) return;
var _Edit = _Gdv.ActiveEditor as GridLookUpEdit;
var _SelectRowData = _Edit.Properties.View.GetFocusedDataRow();
if (_SelectRowData == null) return;
if (_Edit.Properties.Name == "glue_hzyy") // 会诊医院
{
// 记录旧值用于回滚
var oldValue = _currentRowData["HZYYBM"];
_currentRowData["HZYYBM"] = _SelectRowData["ITEM_CODE"];
// 检查是否存在同一医院的统一会诊收费等级重复
if (CheckDuplicateHospitalGrade(_currentRowData))
{
// 要加上这句,可能有部分操作会导致数据又刷新成新数据
_currentRowData["HZYYBM"] = oldValue;
_Edit.EditValue= oldValue;
_Edit.IsModified=false;
e.Value=oldValue;
MessageBox.Show("同一医院的同一会诊收费等级,只能存在一份!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
}
else // 不重复直接赋值名称
{
_currentRowData["HZYYMC"] = _SelectRowData["ITEM_NAME"];
}
}
}
}