示例#1
0
        /// <summary>
        /// ÉèÖÃ״̬
        /// </summary>
        /// <param name="control"></param>
        /// <param name="state"></param>
        /// <param name="readOnlyWhenView"></param>
        private static void SetState(IDataValueControl control, StateType state, bool readOnlyWhenView)
        {
            switch (state)
            {
            case StateType.None:
                control.SelectedDataValue = null;
                control.ReadOnly          = readOnlyWhenView;
                break;

            case StateType.View:
                control.ReadOnly = readOnlyWhenView;
                break;

            case StateType.Add:
                control.SelectedDataValue = null;
                control.ReadOnly          = !readOnlyWhenView;
                break;

            case StateType.Edit:
                control.ReadOnly = !readOnlyWhenView;
                break;

            default:
                throw new NotSupportedException("Invalid State of " + state);
            }
        }
        /// <summary>
        /// Evaluate
        /// </summary>
        /// <param name="validationProvider"></param>
        /// <param name="componentToValidate"></param>
        /// <param name="valueToValidate"></param>
        /// <param name="validationMessage"></param>
        /// <returns></returns>
        public override bool Evaluate(ValidationProvider validationProvider, object componentToValidate,
                                      string valueToValidate, out string validationMessage)
        {
            validationMessage = string.Empty;

            IDataValueControl dataControl = componentToValidate as IDataValueControl;

            if (dataControl != null)
            {
                valueToValidate = (dataControl.SelectedDataValue == null
                                       ? null
                                       : dataControl.SelectedDataValue.ToString());
                if (dataControl.ReadOnly)
                {
                    return(true);
                }
            }
            Xceed.Grid.Cell cell = componentToValidate as Xceed.Grid.Cell;
            if (cell != null)
            {
                if (cell.ReadOnly)
                {
                    return(true);
                }
            }

            //object nullValue;
            //if (!s_nullValues.ContainsKey(m_dataType))
            //{
            //    nullValue = string.Empty;
            //}
            //else
            //{
            //    nullValue = s_nullValues[m_dataType];
            //}


            if (valueToValidate == null)
            {
                valueToValidate = string.Empty;
            }
            if ((valueToValidate != null) && base.Trim)
            {
                valueToValidate = valueToValidate.Trim();
            }

            if (string.IsNullOrEmpty(valueToValidate))
            {
                validationMessage = (base.CustomValidationMessages.RequiredField != null)
                                        ? base.CustomValidationMessages.RequiredField
                                        : validationProvider.DefaultValidationMessages.RequiredField;
                validationMessage = validationMessage.Replace("%name%", base.CriterionName);
                return(false);
            }
            else
            {
                return(true);
            }
        }
示例#3
0
        /// <summary>
        /// 验证是否符合格式。(只读的不验证)
        /// </summary>
        /// <param name="validationProvider"></param>
        /// <param name="componentToValidate"></param>
        /// <param name="valueToValidate"></param>
        /// <param name="validationMessage"></param>
        /// <returns></returns>
        public override bool Evaluate(ValidationProvider validationProvider, object componentToValidate,
                                      string valueToValidate, out string validationMessage)
        {
            validationMessage = string.Empty;

            IDataValueControl dataControl = componentToValidate as IDataValueControl;

            if (dataControl != null)
            {
                valueToValidate = (dataControl.SelectedDataValue == null
                                       ? null
                                       : dataControl.SelectedDataValue.ToString());

                if (dataControl.ReadOnly)
                {
                    return(true);
                }
            }
            Xceed.Grid.Cell cell = componentToValidate as Xceed.Grid.Cell;
            if (cell != null)
            {
                if (cell.ReadOnly)
                {
                    return(true);
                }
            }

            if (valueToValidate == null)
            {
                valueToValidate = string.Empty;
            }

            if (base.Trim)
            {
                valueToValidate = valueToValidate.Trim();
            }

            if (string.IsNullOrEmpty(valueToValidate))
            {
                return(true);
            }

            bool success = true;

            //Regex regex = base.CaseSensitive ? new Regex(this.RegularExpression ?? "") : new Regex(this.RegularExpression ?? "", RegexOptions.IgnoreCase);
            success = m_regex.Match(valueToValidate).Success;
            if (!success)
            {
                validationMessage = (base.CustomValidationMessages.RegularExpression != null)
                                        ? base.CustomValidationMessages.RegularExpression
                                        : validationProvider.DefaultValidationMessages.RegularExpression;
                validationMessage = validationMessage.Replace("%name%", base.CriterionName);
            }
            return(success);
        }
        /// <summary>
        /// 验证是否符合格式。(只读的不验证)
        /// </summary>
        /// <param name="validationProvider"></param>
        /// <param name="componentToValidate"></param>
        /// <param name="valueToValidate"></param>
        /// <param name="validationMessage"></param>
        /// <returns></returns>
        public override bool Evaluate(ValidationProvider validationProvider, object componentToValidate,
                                      string valueToValidate, out string validationMessage)
        {
            validationMessage = string.Empty;

            IDataValueControl dataControl = componentToValidate as IDataValueControl;

            if (dataControl != null)
            {
                valueToValidate = (dataControl.SelectedDataValue == null
                                       ? null
                                       : dataControl.SelectedDataValue.ToString());

                if (dataControl.ReadOnly)
                {
                    return(true);
                }
            }
            Xceed.Grid.Cell cell = componentToValidate as Xceed.Grid.Cell;
            if (cell != null)
            {
                if (cell.ReadOnly)
                {
                    return(true);
                }
            }

            if (valueToValidate != null && base.Trim)
            {
                valueToValidate = valueToValidate.Trim();
            }
            if (string.IsNullOrEmpty(valueToValidate))
            {
                valueToValidate = null;
            }

            Dictionary <string, object> p = new Dictionary <string, object> {
                { "value", valueToValidate },
                { "cell", cell },
                { "dc", dataControl }
            };

            // "cm"
            foreach (var i in m_param)
            {
                p.Add(i.Key, i.Value);
            }
            object success = Script.CalculateExpression(m_script, p);

            if (success == null || !Convert.ToBoolean(success))
            {
                validationMessage = (base.CustomValidationMessages.RegularExpression != null)
                                        ? base.CustomValidationMessages.RegularExpression
                                        : validationProvider.DefaultValidationMessages.RegularExpression;
                validationMessage = validationMessage.Replace("%name%", base.CriterionName);
                return(false);
            }
            else
            {
                return(true);
            }
        }
示例#5
0
 /// <summary>
 /// ÉèÖÃ״̬
 /// </summary>
 /// <param name="control"></param>
 /// <param name="state"></param>
 public static void SetState(IDataValueControl control, StateType state)
 {
     SetState(control, state, true);
 }