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;
}
}
}
}