/// <summary> /// <para> /// Gets the design time HTML of ValidatorBase controls. /// </para> /// </summary> /// <returns> /// <para> /// The design time /// HTML of the control. /// </para> /// </returns> protected override String GetDesignTimeNormalHtml() { Debug.Assert(_baseValidator.Text != null); String originalText = _baseValidator.ErrorMessage; ValidatorDisplay validatorDisplay = _baseValidator.Display; bool blankText = (validatorDisplay == ValidatorDisplay.None || (originalText.Trim().Length == 0 && _baseValidator.Text.Trim().Length == 0)); if (blankText) { _baseValidator.ErrorMessage = "[" + _baseValidator.ID + "]"; } DesignerTextWriter tw = new DesignerTextWriter(); _baseValidator.Adapter.Render(tw); if (blankText) { _baseValidator.ErrorMessage = originalText; } return(tw.ToString()); }
/// <include file='doc\BaseValidatorDesigner.uex' path='docs/doc[@for="BaseValidatorDesigner.GetDesignTimeHtml"]/*' /> /// <devdoc> /// <para> /// Gets the design time HTML of ValidatorBase controls. /// </para> /// </devdoc> public override string GetDesignTimeHtml() { BaseValidator bv = (BaseValidator)Component; // Set to false to force a render bv.IsValid = false; // Put in dummy text if required string originalText = bv.ErrorMessage; ValidatorDisplay validatorDisplay = bv.Display; bool blank = (validatorDisplay == ValidatorDisplay.None || (originalText.Trim().Length == 0 && bv.Text.Trim().Length == 0)); if (blank) { bv.ErrorMessage = "[" + bv.ID + "]"; bv.Display = ValidatorDisplay.Static; } string html = base.GetDesignTimeHtml(); // Reset the control state if (blank) { bv.ErrorMessage = originalText; bv.Display = validatorDisplay; } return(html); }
/// <summary> /// Adds the HTML attributes and styles of a <see cref="T:System.Web.UI.WebControls.Label"/> control to render to the specified output stream. /// </summary> /// <param name="writer">An <see cref="T:System.Web.UI.HtmlTextWriter"/> that represents the output stream to render HTML content on the client.</param> /// <exception cref="T:System.Web.HttpException">The control specified in the <see cref="P:System.Web.UI.WebControls.Label.AssociatedControlID"/> property cannot be found.</exception> protected override void AddAttributesToRender(HtmlTextWriter writer) { bool flag = !Enabled; if (flag) { Enabled = true; } try { if (RenderUplevel) { base.EnsureID(); string clientID = ClientID; //HtmlTextWriter writer2 = base.EnableLegacyRendering ? writer : null; HtmlTextWriter writer2 = writer; if (ControlToValidate.Length > 0) { AddExpandoAttribute(writer2, clientID, "controltovalidate", GetControlRenderID(ControlToValidate)); } if (SetFocusOnError) { AddExpandoAttribute(writer2, clientID, "focusOnError", "t", false); } if (ErrorMessage.Length > 0) { AddExpandoAttribute(writer2, clientID, "errormessage", ErrorMessage); } ValidatorDisplay enumValue = Display; if (enumValue != ValidatorDisplay.Static) { AddExpandoAttribute(writer2, clientID, "display", PropertyConverter.EnumToString(typeof(ValidatorDisplay), enumValue), false); } if (!IsValid) { AddExpandoAttribute(writer2, clientID, "isvalid", "False", false); } if (flag) { AddExpandoAttribute(writer2, clientID, "enabled", "False", false); } if (ValidationGroup.Length > 0) { AddExpandoAttribute(writer2, clientID, "validationGroup", ValidationGroup); } } base.AddAttributesToRender(writer); } finally { if (flag) { Enabled = false; } } }
public void CreateValidator(string message, ValidatorDisplay dispaly) { RequiredFieldValidator Valida = new RequiredFieldValidator(); Valida.ControlToValidate = this.S_TxtDatecalendar.ID; Valida.ErrorMessage = message; Valida.Display = dispaly; this.Controls.Add(Valida); }
//public static void DoBaseCompareValidatorAddAttributes(WhidbeyBaseCompareValidator validator, IBaseCompareValidatorAccessor validatorAccessor) { // if (validatorAccessor.RenderUpLevel) { // ValidationDataType type = validator.Type; // if (type != ValidationDataType.String) { // string id = validator.ClientID; // ValidatorHelper.AddExpandoAttribute(validator, id, "type", PropertyConverter.EnumToString(typeof(ValidationDataType), type), false); // NumberFormatInfo info = NumberFormatInfo.CurrentInfo; // if (type == ValidationDataType.Double) { // string decimalChar = info.NumberDecimalSeparator; // ValidatorHelper.AddExpandoAttribute(validator, id, "decimalchar", decimalChar); // } // else if (type == ValidationDataType.Currency) { // string decimalChar = info.CurrencyDecimalSeparator; // ValidatorHelper.AddExpandoAttribute(validator, id, "decimalchar", decimalChar); // string groupChar = info.CurrencyGroupSeparator; // if (groupChar[0] == 160) // groupChar = " "; // ValidatorHelper.AddExpandoAttribute(validator, id, "groupchar", groupChar); // int digits = info.CurrencyDecimalDigits; // ValidatorHelper.AddExpandoAttribute(validator, id, "digits", digits.ToString(NumberFormatInfo.InvariantInfo), false); // int groupSize = GetCurrencyGroupSize(info); // if (groupSize > 0) { // ValidatorHelper.AddExpandoAttribute(validator, id, "groupsize", groupSize.ToString(NumberFormatInfo.InvariantInfo), false); // } // } // else if (type == ValidationDataType.Date) { // ValidatorHelper.AddExpandoAttribute(validator, id, "dateorder", validatorAccessor.GetDateElementOrder(), false); // ValidatorHelper.AddExpandoAttribute(validator, id, "cutoffyear", validatorAccessor.CutoffYear.ToString(NumberFormatInfo.InvariantInfo), false); // int currentYear = DateTime.Today.Year; // int century = currentYear - (currentYear % 100); // ValidatorHelper.AddExpandoAttribute(validator, id, "century", century.ToString(NumberFormatInfo.InvariantInfo), false); // } // } // } //} public static void DoBaseValidatorAddAttributes(WhidbeyBaseValidator validator, IBaseValidatorAccessor validatorAccessor, HtmlTextWriter writer) { bool disabled = !validator.Enabled; if (disabled) { validator.Enabled = true; } try { if (validatorAccessor.RenderUpLevel) { validatorAccessor.EnsureID(); string id = validator.ClientID; if (validator.ControlToValidate.Length > 0) { AddExpandoAttribute(validator, id, "controltovalidate", validatorAccessor.GetControlRenderID(validator.ControlToValidate)); } if (validator.SetFocusOnError) { AddExpandoAttribute(validator, id, "focusOnError", "t", false); } if (validator.ErrorMessage.Length > 0) { AddExpandoAttribute(validator, id, "errormessage", validator.ErrorMessage); } ValidatorDisplay display = validator.Display; if (display != ValidatorDisplay.Static) { AddExpandoAttribute(validator, id, "display", PropertyConverter.EnumToString(typeof(ValidatorDisplay), display), false); } if (!validator.IsValid) { AddExpandoAttribute(validator, id, "isvalid", "False", false); } if (disabled) { AddExpandoAttribute(validator, id, "enabled", "False", false); } if (validator.ValidationGroup.Length > 0) { AddExpandoAttribute(validator, id, "validationGroup", validator.ValidationGroup); } } DoWebControlAddAttributes(validator, validatorAccessor, writer); } finally { if (disabled) { validator.Enabled = false; } } }
/// <summary> /// Initializes a new instance of the <see cref="AddressControl"/> class. /// </summary> public AddressControl() : base() { HelpBlock = new HelpBlock(); WarningBlock = new WarningBlock(); // Prevent ViewState from being disabled by the container, because it is necessary for this control to operate correctly. this.ViewStateMode = ViewStateMode.Enabled; // Default validation display mode to use the ValidationSummary control rather than inline. this.ValidationDisplay = ValidatorDisplay.None; }
protected T GetValidator <T>(T validator, string id, string controlToValidateId, string errorMessage, string validationGroup, ValidatorDisplay validatorDisplay) where T : BaseValidator { validator.ID = id; validator.ControlToValidate = controlToValidateId; validator.Text = errorMessage; validator.ErrorMessage = errorMessage; validator.ValidationGroup = validationGroup; validator.Display = validatorDisplay; return(validator); }
/// <include file='doc\BaseValidator.uex' path='docs/doc[@for="BaseValidator.AddAttributesToRender"]/*' /> /// <internalonly/> /// <devdoc> /// <para>Adds the attributes of this control to the output stream for rendering on the /// client.</para> /// </devdoc> protected override void AddAttributesToRender(HtmlTextWriter writer) { // Validators do not render the "disabled" attribute, instead they are invisible when disabled. bool disabled = !Enabled; if (disabled) { Enabled = true; } base.AddAttributesToRender(writer); if (RenderUplevel) { // We always want validators to have an id on the client, so if it's null, write it here. // Otherwise, base.RenderAttributes takes care of it. // REVIEW: this is a bit hacky. if (ID == null) { writer.AddAttribute("id", ClientID); } if (ControlToValidate.Length > 0) { writer.AddAttribute("controltovalidate", GetControlRenderID(ControlToValidate)); } if (ErrorMessage.Length > 0) { writer.AddAttribute("errormessage", ErrorMessage, true); } ValidatorDisplay display = Display; if (display != ValidatorDisplay.Static) { writer.AddAttribute("display", PropertyConverter.EnumToString(typeof(ValidatorDisplay), display)); } if (!IsValid) { writer.AddAttribute("isvalid", "False"); } if (disabled) { writer.AddAttribute("enabled", "False"); } } if (disabled) { Enabled = false; } }
/// <summary> /// Init routine /// </summary> protected virtual void InitializeRequiredFieldValidator(ref RequiredFieldValidator rfv, string controlId, string controlToValidate, string validationGroup, string text, string errMessage, bool enableClientScript, ValidatorDisplay validatorDisplay) { if (rfv == null) { rfv = new RequiredFieldValidator(); rfv.ID = controlId; rfv.ControlToValidate = controlToValidate; rfv.ValidationGroup = validationGroup; rfv.Text = text; rfv.ErrorMessage = errMessage; rfv.EnableClientScript = enableClientScript; rfv.Display = ValidatorDisplay.Static; } }
/// <summary> /// Init routine /// </summary> protected virtual void InitializeRegularExpressionValidator(ref RegularExpressionValidator rev, string controlId, string controlToValidate, string validationExpression, string validationGroup, string text, string errMessage, bool enableClientScript, ValidatorDisplay validatorDisplay) { if (rev == null) { rev = new RegularExpressionValidator(); rev.ID = controlId; rev.ControlToValidate = controlToValidate; rev.ValidationExpression = validationExpression; rev.ValidationGroup = validationGroup; rev.Text = text; rev.ErrorMessage = errMessage; rev.EnableClientScript = enableClientScript; } }
public override string GetDesignTimeHtml() { BaseValidator viewControl = (BaseValidator)base.ViewControl; viewControl.IsValid = false; string errorMessage = viewControl.ErrorMessage; ValidatorDisplay display = viewControl.Display; bool flag = (display == ValidatorDisplay.None) || ((errorMessage.Trim().Length == 0) && (viewControl.Text.Trim().Length == 0)); if (flag) { viewControl.ErrorMessage = "[" + viewControl.ID + "]"; viewControl.Display = ValidatorDisplay.Static; } string designTimeHtml = base.GetDesignTimeHtml(); if (flag) { viewControl.ErrorMessage = errorMessage; viewControl.Display = display; } return(designTimeHtml); }
/// <internalonly/> /// <devdoc> /// <para>Adds the attributes of this control to the output stream for rendering on the /// client.</para> /// </devdoc> protected override void AddAttributesToRender(HtmlTextWriter writer) { // Validators do not render the "disabled" attribute, instead they are invisible when disabled. bool disabled = !Enabled; if (disabled) { Enabled = true; } try { if (RenderUplevel) { // We always want validators to have an id on the client EnsureID(); string id = ClientID; // DevDiv Schedule 33075: Expando attributes are added through client-side JavaScript // DevDiv 33149: A backward compat. switch for Everett rendering HtmlTextWriter expandoAttributeWriter = (EnableLegacyRendering || IsUnobtrusive) ? writer : null; if (IsUnobtrusive) { Attributes["data-val"] = "true"; } if (ControlToValidate.Length > 0) { AddExpandoAttribute(expandoAttributeWriter, id, "controltovalidate", GetControlRenderID(ControlToValidate)); } if (SetFocusOnError) { AddExpandoAttribute(expandoAttributeWriter, id, "focusOnError", "t", false); } if (ErrorMessage.Length > 0) { AddExpandoAttribute(expandoAttributeWriter, id, "errormessage", ErrorMessage); } ValidatorDisplay display = Display; if (display != ValidatorDisplay.Static) { AddExpandoAttribute(expandoAttributeWriter, id, "display", PropertyConverter.EnumToString(typeof(ValidatorDisplay), display), false); } if (!IsValid) { AddExpandoAttribute(expandoAttributeWriter, id, "isvalid", "False", false); } if (disabled) { AddExpandoAttribute(expandoAttributeWriter, id, "enabled", "False", false); } if (ValidationGroup.Length > 0) { AddExpandoAttribute(expandoAttributeWriter, id, "validationGroup", ValidationGroup); } } base.AddAttributesToRender(writer); } finally { // If exception happens above, we can still reset the property if needed if (disabled) { Enabled = false; } } }
public virtual void CreateClientValidator(Page page, StringBuilder sb, string clientID, string controlToValidate, ValidatorDisplay display, string validationGroup, object controlValue) { controlValues.Add(controlValue); var isValid = ValidateValue((controlValue ?? "").ToString()); clientValidatorInfos[clientID] = new clientValidatorInfo { clientID = clientID, controlToValidate = controlToValidate, display = display, isValid = isValid, validationGroup = validationGroup, }; sb.Append(" <span id=\""); sb.Append(clientID); sb.Append("\" style=\"color:Red;"); if (isValid) { sb.Append("display:none;"); } sb.Append("\">"); sb.Append(ErrorMessage); sb.Append("</span>"); if (!isAddedToPage) { page.Validators.Add(this); isAddedToPage = true; } }
protected override void Render(HtmlTextWriter writer) { bool flag; if (base.DesignMode || (!preRenderCalled && (Page == null))) { propertiesChecked = true; propertiesValid = true; renderUplevel = false; flag = true; } else { flag = Enabled && !IsValid; } if (!PropertiesValid) { return; } bool flag2; bool flag3; if (Page != null) { Page.VerifyRenderingInServerForm(this); } ValidatorDisplay display = Display; if (RenderUplevel) { flag3 = true; flag2 = display != ValidatorDisplay.None; } else { flag2 = (display != ValidatorDisplay.None) && flag; flag3 = flag2; } if (flag3 && RenderUplevel) { RegisterValidatorDeclaration(); if ((display == ValidatorDisplay.None) || (!flag && (display == ValidatorDisplay.Dynamic))) { base.Style["display"] = "none"; } else if (!flag) { base.Style["visibility"] = "hidden"; } } if (flag3) { RenderBeginTag(writer); } if (flag2) { if (Text.Trim().Length > 0) { RenderContents(writer); } //else if (base.HasRenderingData()) //{ // base.RenderContents(writer); //} else { writer.Write(ErrorMessage); } } else if (!RenderUplevel && (display == ValidatorDisplay.Static)) { writer.Write(" "); } if (flag3) { RenderEndTag(writer); } base.RenderContents(writer); }
/// <internalonly/> /// <devdoc> /// <para>Displays the control on the client.</para> /// </devdoc> protected internal override void Render(HtmlTextWriter writer) { bool shouldBeVisible; // VSWhidbey 347677, 398978: Backward Compat.: Skip property checking if the // validator doesn't have PreRender called and it is not in page control tree. if (DesignMode || (!preRenderCalled && Page == null)) { // This is for design time. In this case we don't want any expandos // created, don't want property checks and always want to be visible. propertiesChecked = true; propertiesValid = true; renderUplevel = false; shouldBeVisible = true; } else { shouldBeVisible = Enabled && !IsValid; } // No point rendering if we have errors if (!PropertiesValid) { return; } // Make sure we are in a form tag with runat=server. if (Page != null) { Page.VerifyRenderingInServerForm(this); } // work out what we are displaying ValidatorDisplay display = Display; bool displayContents; bool displayTags; if (RenderUplevel) { displayTags = true; displayContents = (display != ValidatorDisplay.None); } else { displayContents = (display != ValidatorDisplay.None && shouldBeVisible); displayTags = displayContents; } if (displayTags && RenderUplevel) { if (!IsUnobtrusive) { // Put ourselves in the array RegisterValidatorDeclaration(); } // Set extra uplevel styles if (display == ValidatorDisplay.None || (!shouldBeVisible && display == ValidatorDisplay.Dynamic)) { Style["display"] = "none"; } else if (!shouldBeVisible) { Debug.Assert(display == ValidatorDisplay.Static, "Unknown Display Type"); Style["visibility"] = "hidden"; } } // Display it if (displayTags) { RenderBeginTag(writer); } if (displayContents) { if (Text.Trim().Length > 0) { RenderContents(writer); } else if (HasRenderingData()) { base.RenderContents(writer); } else { writer.Write(ErrorMessage); } } else if (!RenderUplevel && display == ValidatorDisplay.Static) { // For downlevel in static mode, render a space so that table cells do not render as empty writer.Write(" "); } if (displayTags) { RenderEndTag(writer); } }
/// <summary> /// Создание валидатора по клиентскому ID /// </summary> /// <param name="page">Страница</param> /// <param name="sb">StringBuilder в который необходимо добавить валидатор</param> /// <param name="clientID">Клиентский ID валидатора</param> /// <param name="controlToValidate">Клиентский ID валидируемого компонента</param> /// <param name="controlValue">Текущее значение контрола</param> /// <param name="display">Настройка срабатывания валидации</param> /// <param name="validationGroup">Группа валидации</param> public void CreateClientValidator(Page page, StringBuilder sb, string clientID, string controlToValidate, string controlValue, ValidatorDisplay display, string validationGroup) { base.CreateClientValidator(page, sb, clientID, controlToValidate, display, validationGroup, controlValue); }