[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即可");

        }

你可能感兴趣的:(DevExpress)