/// <summary> /// Creates an email-address control. /// </summary> /// <param name="setup">The setup object for the control. Do not pass null.</param> /// <param name="validationMethod">A function that validates the value entered by the user and returns a result. Do not pass null.</param> public static NavFormControl CreateEmail(NavFormControlSetup setup, Func <string, NavFormControlValidationResult> validationMethod) => new NavFormControl( setup, validationResultHandler => { return(new EmailAddressControl( "", false, setup: setup.AutoCompleteResource != null ? EmailAddressControlSetup.CreateAutoComplete( setup.AutoCompleteResource, placeholder: setup.Placeholder, triggersActionWhenItemSelected: true) : EmailAddressControlSetup.Create(placeholder: setup.Placeholder), validationMethod: (postBackValue, validator) => validationResultHandler(validationMethod(postBackValue), validator))); });
/// <summary> /// Creates an email-address control. /// </summary> /// <param name="value">Do not pass null.</param> /// <param name="allowEmpty"></param> /// <param name="setup">The setup object for the email-address control.</param> /// <param name="maxLength">The maximum number of characters a user can input.</param> /// <param name="validationMethod">The validation method. Pass null if you’re only using this control for page modification.</param> public EmailAddressControl( string value, bool allowEmpty, EmailAddressControlSetup setup = null, int?maxLength = null, Action <string, Validator> validationMethod = null) { setup = setup ?? EmailAddressControlSetup.Create(); (Labeler, PageComponent, Validation) = setup.TextControlSetup.LabelerAndComponentAndValidationGetter( value, allowEmpty, null, maxLength, (postBackValue, validator) => { var errorHandler = new ValidationErrorHandler("email address"); var validatedValue = maxLength.HasValue ? validator.GetEmailAddress(errorHandler, postBackValue, allowEmpty, maxLength: maxLength.Value) : validator.GetEmailAddress(errorHandler, postBackValue, allowEmpty); return(errorHandler.LastResult != ErrorCondition.NoError ? null : validatedValue); }, validationMethod); }