AjaxControlToolkit.MaskedEditCommon.GetFirstMaskPosition C# (CSharp) Метод

GetFirstMaskPosition() публичный статический Метод

public static GetFirstMaskPosition ( string text ) : int
text string
Результат int
        public static int GetFirstMaskPosition(string text)
        {
            var flagescape = false;
            text = ConvertMask(text);
            int i;
            for(i = 0; i < text.Length; i++) {
                if(text.Substring(i, 1) == _charEscape && !flagescape)
                    flagescape = true;
                else if(_charsEditMask.IndexOf(text.Substring(i, 1), StringComparison.Ordinal) != -1 && !flagescape)
                    return i;
                else if(flagescape)
                    flagescape = false;
            }

            return -1;
        }

Usage Example

Пример #1
0
        protected override void OnPreRender(System.EventArgs e)
        {
            base.OnPreRender(e);
            if (this.EnableClientScript)
            {
                // register Script Resource at current page
                ScriptManager.RegisterClientScriptResource(this, typeof(MaskedEditValidator), "AjaxControlToolkit.MaskedEdit.MaskedEditValidator.js");

                MaskedEditExtender MaskExt = (MaskedEditExtender)FindControl(ControlExtender);
                TextBox            Target  = (TextBox)MaskExt.FindControl(ControlToValidate);

                int FirstMaskPos     = -1;
                int LastMaskPosition = -1;
                if (MaskExt.ClearMaskOnLostFocus)
                {
                    FirstMaskPos     = 0;
                    LastMaskPosition = MaskedEditCommon.GetValidMask(MaskExt.Mask).Length + 1;
                }
                else
                {
                    FirstMaskPos     = MaskedEditCommon.GetFirstMaskPosition(MaskExt.Mask);
                    LastMaskPosition = MaskedEditCommon.GetLastMaskPosition(MaskExt.Mask) + 1;
                }
                ScriptManager.RegisterExpandoAttribute(this, this.ClientID, "IsMaskedEdit", true.ToString().ToLower(CultureInfo.InvariantCulture), true);
                ScriptManager.RegisterExpandoAttribute(this, this.ClientID, "ValidEmpty", this.IsValidEmpty.ToString().ToLower(CultureInfo.InvariantCulture), true);
                ScriptManager.RegisterExpandoAttribute(this, this.ClientID, "MaximumValue", this.MaximumValue, true);
                ScriptManager.RegisterExpandoAttribute(this, this.ClientID, "MinimumValue", this.MinimumValue, true);
                ScriptManager.RegisterExpandoAttribute(this, this.ClientID, "InitialValue", this.InitialValue, true);
                ScriptManager.RegisterExpandoAttribute(this, this.ClientID, "ValidationExpression", this.ValidationExpression, true);
                ScriptManager.RegisterExpandoAttribute(this, this.ClientID, "ClientValidationFunction", this.ClientValidationFunction, true);
                ScriptManager.RegisterExpandoAttribute(this, this.ClientID, "TargetValidator", Target.ClientID, true);
                ScriptManager.RegisterExpandoAttribute(this, this.ClientID, "EmptyValueMessage", this.EmptyValueMessage, true);
                ScriptManager.RegisterExpandoAttribute(this, this.ClientID, "EmptyValueText", this.EmptyValueBlurredText, true);
                ScriptManager.RegisterExpandoAttribute(this, this.ClientID, "MaximumValueMessage", this.MaximumValueMessage, true);
                ScriptManager.RegisterExpandoAttribute(this, this.ClientID, "MaximumValueText", this.MaximumValueBlurredMessage, true);
                ScriptManager.RegisterExpandoAttribute(this, this.ClientID, "MinimumValueMessage", this.MinimumValueMessage, true);
                ScriptManager.RegisterExpandoAttribute(this, this.ClientID, "MinimumValueText", this.MinimumValueBlurredText, true);
                ScriptManager.RegisterExpandoAttribute(this, this.ClientID, "InvalidValueMessage", this.InvalidValueMessage, true);
                ScriptManager.RegisterExpandoAttribute(this, this.ClientID, "InvalidValueText", this.InvalidValueBlurredMessage, true);
                ScriptManager.RegisterExpandoAttribute(this, this.ClientID, "InvalidValueCssClass", MaskExt.OnInvalidCssClass, true);
                ScriptManager.RegisterExpandoAttribute(this, this.ClientID, "CssBlurNegative", MaskExt.OnBlurCssNegative, true);
                ScriptManager.RegisterExpandoAttribute(this, this.ClientID, "CssFocus", MaskExt.OnFocusCssClass, true);
                ScriptManager.RegisterExpandoAttribute(this, this.ClientID, "CssFocusNegative", MaskExt.OnFocusCssNegative, true);
                ScriptManager.RegisterExpandoAttribute(this, this.ClientID, "TooltipMessage", this.TooltipMessage, true);
                ScriptManager.RegisterExpandoAttribute(this, this.ClientID, "FirstMaskPosition", FirstMaskPos.ToString(CultureInfo.InvariantCulture), true);

                if (!String.IsNullOrEmpty(MaskExt.CultureName))
                {
                    ControlCulture = System.Globalization.CultureInfo.GetCultureInfo(MaskExt.CultureName);
                }
                switch (MaskExt.MaskType)
                {
                case MaskedEditType.None:
                {
                    ScriptManager.RegisterExpandoAttribute(this, this.ClientID, "evaluationfunction", "MaskedEditValidatorNone", true);
                    ScriptManager.RegisterExpandoAttribute(this, this.ClientID, "LastMaskPosition", LastMaskPosition.ToString(CultureInfo.InvariantCulture), true);
                    break;
                }

                case MaskedEditType.Number:
                {
                    string AttibCu = ControlCulture.NumberFormat.CurrencySymbol;
                    string AttibDc = ControlCulture.NumberFormat.CurrencyDecimalSeparator;
                    string AttibTh = ControlCulture.NumberFormat.CurrencyGroupSeparator;
                    if (MaskExt.DisplayMoney != MaskedEditShowSymbol.None)
                    {
                        LastMaskPosition += MaskExt.CultureCurrencySymbolPlaceholder.Length + 1;
                    }
                    if (MaskExt.AcceptNegative != MaskedEditShowSymbol.None)
                    {
                        if (MaskExt.DisplayMoney != MaskedEditShowSymbol.None)
                        {
                            LastMaskPosition++;
                        }
                        else
                        {
                            LastMaskPosition += 2;
                        }
                    }
                    ScriptManager.RegisterExpandoAttribute(this, this.ClientID, "Money", AttibCu, true);
                    ScriptManager.RegisterExpandoAttribute(this, this.ClientID, "Decimal", AttibDc, true);
                    ScriptManager.RegisterExpandoAttribute(this, this.ClientID, "Thousands", AttibTh, true);
                    ScriptManager.RegisterExpandoAttribute(this, this.ClientID, "evaluationfunction", "MaskedEditValidatorNumber", true);
                    ScriptManager.RegisterExpandoAttribute(this, this.ClientID, "LastMaskPosition", LastMaskPosition.ToString(CultureInfo.InvariantCulture), true);
                    break;
                }

                case MaskedEditType.DateTime:
                {
                    //date
                    string   AttibSep = ControlCulture.DateTimeFormat.DateSeparator;
                    char     sep      = System.Char.Parse(ControlCulture.DateTimeFormat.DateSeparator);
                    string[] arrDate  = ControlCulture.DateTimeFormat.ShortDatePattern.Split(sep);
                    string   AttibFmt = arrDate[0].Substring(0, 1).ToUpper(ControlCulture);
                    AttibFmt += arrDate[1].Substring(0, 1).ToUpper(ControlCulture);
                    AttibFmt += arrDate[2].Substring(0, 1).ToUpper(ControlCulture);

                    AttibFmt = (MaskExt.UserDateFormat == MaskedEditUserDateFormat.None ? AttibFmt : MaskExt.UserDateFormat.ToString());

                    ScriptManager.RegisterExpandoAttribute(this, this.ClientID, "DateSeparator", AttibSep, true);
                    ScriptManager.RegisterExpandoAttribute(this, this.ClientID, "DateFormat", AttibFmt, true);
                    ScriptManager.RegisterExpandoAttribute(this, this.ClientID, "Century", MaskExt.Century.ToString(CultureInfo.InvariantCulture), true);
                    //time
                    AttibSep = ControlCulture.DateTimeFormat.TimeSeparator;
                    string AttibSyb = "";
                    if (String.IsNullOrEmpty(ControlCulture.DateTimeFormat.AMDesignator + ControlCulture.DateTimeFormat.PMDesignator))
                    {
                        AttibSyb = "";
                    }
                    else
                    {
                        AttibSyb = ControlCulture.DateTimeFormat.AMDesignator + ";" + ControlCulture.DateTimeFormat.PMDesignator;
                    }

                    AttibSyb = (MaskExt.UserTimeFormat == MaskedEditUserTimeFormat.None ? AttibSyb : "");

                    if (MaskExt.AcceptAMPM)
                    {
                        if (!String.IsNullOrEmpty(AttibSyb))
                        {
                            sep = System.Char.Parse(AttibSep);
                            string[] arrSyb = AttibSyb.Split(sep);
                            LastMaskPosition += arrSyb[0].Length + 1;
                        }
                    }
                    ScriptManager.RegisterExpandoAttribute(this, this.ClientID, "TimeSeparator", AttibSep, true);
                    ScriptManager.RegisterExpandoAttribute(this, this.ClientID, "AmPmSymbol", AttibSyb, true);
                    ScriptManager.RegisterExpandoAttribute(this, this.ClientID, "evaluationfunction", "MaskedEditValidatorDateTime", true);
                    ScriptManager.RegisterExpandoAttribute(this, this.ClientID, "LastMaskPosition", LastMaskPosition.ToString(CultureInfo.InvariantCulture), true);
                    break;
                }

                case MaskedEditType.Date:
                {
                    string   AttibSep = ControlCulture.DateTimeFormat.DateSeparator;
                    char     sep      = System.Char.Parse(ControlCulture.DateTimeFormat.DateSeparator);
                    string[] arrDate  = ControlCulture.DateTimeFormat.ShortDatePattern.Split(sep);
                    string   AttibFmt = arrDate[0].Substring(0, 1).ToUpper(ControlCulture);
                    AttibFmt += arrDate[1].Substring(0, 1).ToUpper(ControlCulture);
                    AttibFmt += arrDate[2].Substring(0, 1).ToUpper(ControlCulture);

                    AttibFmt = (MaskExt.UserDateFormat == MaskedEditUserDateFormat.None ? AttibFmt : MaskExt.UserDateFormat.ToString());

                    ScriptManager.RegisterExpandoAttribute(this, this.ClientID, "DateSeparator", AttibSep, true);
                    ScriptManager.RegisterExpandoAttribute(this, this.ClientID, "DateFormat", AttibFmt, true);
                    ScriptManager.RegisterExpandoAttribute(this, this.ClientID, "Century", MaskExt.Century.ToString(CultureInfo.InvariantCulture), true);
                    ScriptManager.RegisterExpandoAttribute(this, this.ClientID, "evaluationfunction", "MaskedEditValidatorDate", true);
                    ScriptManager.RegisterExpandoAttribute(this, this.ClientID, "LastMaskPosition", LastMaskPosition.ToString(CultureInfo.InvariantCulture), true);
                    break;
                }

                case MaskedEditType.Time:
                {
                    string AttibSep = ControlCulture.DateTimeFormat.TimeSeparator;
                    string AttibSyb = "";
                    if (String.IsNullOrEmpty(ControlCulture.DateTimeFormat.AMDesignator + ControlCulture.DateTimeFormat.PMDesignator))
                    {
                        AttibSyb = "";
                    }
                    else
                    {
                        AttibSyb = ControlCulture.DateTimeFormat.AMDesignator + ";" + ControlCulture.DateTimeFormat.PMDesignator;
                    }

                    AttibSyb = (MaskExt.UserTimeFormat == MaskedEditUserTimeFormat.None ? AttibSyb : "");

                    if (MaskExt.AcceptAMPM)
                    {
                        if (!String.IsNullOrEmpty(AttibSyb))
                        {
                            char     sep    = System.Char.Parse(AttibSep);
                            string[] arrSyb = AttibSyb.Split(sep);
                            LastMaskPosition += arrSyb[0].Length + 1;
                        }
                    }
                    ScriptManager.RegisterExpandoAttribute(this, this.ClientID, "TimeSeparator", AttibSep, true);
                    ScriptManager.RegisterExpandoAttribute(this, this.ClientID, "AmPmSymbol", AttibSyb, true);
                    ScriptManager.RegisterExpandoAttribute(this, this.ClientID, "evaluationfunction", "MaskedEditValidatorTime", true);
                    ScriptManager.RegisterExpandoAttribute(this, this.ClientID, "LastMaskPosition", LastMaskPosition.ToString(CultureInfo.InvariantCulture), true);
                    break;
                }
                }
            }
        }
All Usage Examples Of AjaxControlToolkit.MaskedEditCommon::GetFirstMaskPosition