本文实例演示了DevExpress实现GridControl单元格编辑验证的方法,比较实用的功能,具体方法如下:
主要功能代码如下:
/// <summary> /// 自定义单元格验证 /// </summary> /// <param name="view">GridView</param> /// <param name="e">BaseContainerValidateEditorEventArgs</param> /// <param name="fieldNameHandler">委托</param> /// <param name="errorHanlder">委托</param> /// <param name="errorText">当验证不通过对时候,错误提示信息文字</param> public static void CustomValidatingEditor(this GridView view, BaseContainerValidateEditorEventArgs e, Predicate<string> fieldNameHandler, Predicate<object> errorHanlder, string errorText) { /*说明 *在ValidatingEditor事件使用 *eg: *string[] workType = new string[4] { "-1", "关闭但不删除", "启用", "删除" }; *void gvLampConfig_ValidatingEditor(object sender, DevExpress.XtraEditors.Controls.BaseContainerValidateEditorEventArgs e) *{ * GridView _view = sender as GridView; * _view.CustomValidatingEditor(e, fieldName => fieldName.Equals("TLampWorkStatus"), value => !workType.Contains<string>(value.ToString()), "若想设置为不修改,请输入-1即可"); * } */ if (fieldNameHandler(view.FocusedColumn.FieldName)) { if (errorHanlder(e.Value)) { e.Valid = false; e.ErrorText = errorText; } } }
代码使用方法如下:
string[] workType = new string[4] { "-1", "关闭但不删除", "启用", "删除" }; void gvLampConfig_ValidatingEditor(object sender, DevExpress.XtraEditors.Controls.BaseContainerValidateEditorEventArgs e) { GridView _view = sender as GridView; _view.CustomValidatingEditor(e, fieldName => fieldName.Equals("TLampWorkStatus"), value => !workType.Contains<string>(value.ToString()), "若想设置为不修改,请输入-1即可"); }