void IFormItem.AddControl <TValue>(AntInputComponentBase <TValue> control) { if (control.FieldIdentifier.Model == null) { throw new InvalidOperationException($"Please use @bind-Value in the control with generic type `{typeof(TValue)}`."); } this._control = control; CurrentEditContext.OnValidationStateChanged += (s, e) => { control.ValidationMessages = CurrentEditContext.GetValidationMessages(control.FieldIdentifier).ToArray(); this._isValid = !control.ValidationMessages.Any(); StateHasChanged(); }; _formValidationMessages = builder => { var i = 0; builder.OpenComponent <FormValidationMessage <TValue> >(i++); builder.AddAttribute(i++, "Control", control); builder.CloseComponent(); }; _propertyReflector = PropertyReflector.Create(control.ValueExpression); if (_propertyReflector.RequiredAttributes.Any()) { _labelCls = $"{_prefixCls}-required"; } }
void IFormItem.AddControl <TValue>(AntInputComponentBase <TValue> control) { this._control = control; CurrentEditContext.OnValidationStateChanged += (s, e) => { control.ValidationMessages = CurrentEditContext.GetValidationMessages(control.FieldIdentifier).ToArray(); this._isValid = !control.ValidationMessages.Any(); StateHasChanged(); }; _formValidationMessages = builder => { var i = 0; builder.OpenComponent <FormValidationMessage <TValue> >(i++); builder.AddAttribute(i++, "Control", control); builder.CloseComponent(); }; if (control.FieldIdentifier.TryGetValidateProperty(out var propertyInfo)) { var requiredAttribute = propertyInfo.GetCustomAttributes(typeof(RequiredAttribute), true); if (requiredAttribute.Length > 0) { _labelCls = $"{_prefixCls}-required"; } } }
private string[] GetValidationErrors() { if (CurrentEditContext != null) { return(CurrentEditContext.GetValidationMessages().ToArray()); } return(Array.Empty <string>()); }
void IFormItem.AddControl <TValue>(AntInputComponentBase <TValue> control) { if (_control != null) { return; } if (control.FieldIdentifier.Model == null) { throw new InvalidOperationException($"Please use @bind-Value (or @bind-Values for selected components) in the control with generic type `{typeof(TValue)}`."); } _fieldIdentifier = control.FieldIdentifier; this._control = control; if (Form.ValidateMode.IsIn(FormValidateMode.Rules, FormValidateMode.Complex)) { _fieldPropertyInfo = _fieldIdentifier.Model.GetType().GetProperty(_fieldIdentifier.FieldName); } _validationStateChangedHandler = (s, e) => { control.ValidationMessages = CurrentEditContext.GetValidationMessages(control.FieldIdentifier).Distinct().ToArray(); this._isValid = !control.ValidationMessages.Any(); StateHasChanged(); }; CurrentEditContext.OnValidationStateChanged += _validationStateChangedHandler; _formValidationMessages = builder => { var i = 0; builder.OpenComponent <FormValidationMessage <TValue> >(i++); builder.AddAttribute(i++, "Control", control); builder.CloseComponent(); }; if (control.ValueExpression is not null) { _propertyReflector = PropertyReflector.Create(control.ValueExpression); } else { _propertyReflector = PropertyReflector.Create(control.ValuesExpression); } if (_propertyReflector.RequiredAttribute != null) { _labelCls = $"{_prefixCls}-required"; } if (_propertyReflector.DisplayName != null) { Label ??= _propertyReflector.DisplayName; } }
/// <inheritdoc /> protected override void BuildRenderTree(RenderTreeBuilder builder) { foreach (var message in CurrentEditContext.GetValidationMessages(_fieldIdentifier)) { builder.OpenElement(0, "div"); builder.AddAttribute(1, "class", "validation-message"); builder.AddContent(2, message); builder.CloseElement(); } }
/// <inheritdoc /> protected override void BuildRenderTree(RenderTreeBuilder builder) { foreach (string message in CurrentEditContext.GetValidationMessages(FieldIdentifier)) { builder.OpenElement(0, "div"); builder.AddMultipleAttributes(1, AdditionalAttributes); builder.AddContent(2, message); builder.CloseElement(); } }
/// <summary>` /// Constructs an instance of <see cref="ValidationMessage{TValue}"/>. /// </summary> public FormValidationMessage() { _validationStateChangedHandler = (sender, eventArgs) => { bool valid = !CurrentEditContext.GetValidationMessages(_fieldIdentifier).Any(); OnStateChange.InvokeAsync(valid); StateHasChanged(); }; }
/// <inheritdoc /> protected override void BuildRenderTree(RenderTreeBuilder builder) { foreach (var message in CurrentEditContext.GetValidationMessages(_fieldIdentifier)) { builder.OpenElement(0, "div"); builder.AddMultipleAttributes(1, AdditionalAttributes); builder.AddAttribute(2, "class", "invalid-feedback"); builder.AddContent(3, message); builder.CloseElement(); } }
/// <inheritdoc /> protected override void BuildRenderTree(RenderTreeBuilder builder) { foreach (var message in CurrentEditContext.GetValidationMessages(_fieldIdentifier)) { builder.OpenElement(0, "div"); builder.AddMultipleAttributes(1, AdditionalAttributes); builder.AddAttribute(2, "id", Id); builder.AddAttribute(2, "class", "mdc-text-field-helper-text mdc-text-field-helper-text--persistent mdc-text-field-helper-text--validation-msg"); builder.AddAttribute(2, "data-valmsg-for", ForId); builder.AddContent(3, message); builder.CloseElement(); } }
protected override void OnParametersSet() { this.IsValid = true; { if (this.IsRequired) { this.IsValid = false; var messages = CurrentEditContext.GetValidationMessages(_fieldIdentifier).ToList(); if (messages is null || messages.Count == 0) { this.IsValid = true; } } } }
protected override void BuildRenderTree(RenderTreeBuilder builder) { var classes = ((Dictionary <string, object>)AdditionalAttributes).VorN("class")?.ToString().Split(" ").ToList() ?? new List <string>(); classes.Insert(0, "validation-message"); var strClasses = string.Join(" ", classes); foreach (var message in CurrentEditContext.GetValidationMessages(_fieldIdentifier)) { builder.OpenElement(0, "div"); builder.AddMultipleAttributes(1, AdditionalAttributes); builder.AddAttribute(2, "class", strClasses); builder.AddContent(3, message); builder.CloseElement(); } }
private async void CurrentEditContextOnValidationStateChanged(object sender, ValidationStateChangedEventArgs e) { Log.LogInformation("-> CurrentEditContextOnValidationStateChanged"); if (CurrentEditContext.GetValidationMessages().Count() == 0) { Log.LogTrace("Saving"); if (!await Host.SaveSession()) { return; } await Host.UpdateRemoteHosts( UpdateAction.UpdateClock, null, CurrentClockMessage, null); } }
void IFormItem.AddControl <TValue>(AntInputComponentBase <TValue> control) { if (control.FieldIdentifier.Model == null) { throw new InvalidOperationException($"Please use @bind-Value in the control with generic type `{typeof(TValue)}`."); } this._control = control; CurrentEditContext.OnValidationStateChanged += (s, e) => { control.ValidationMessages = CurrentEditContext.GetValidationMessages(control.FieldIdentifier).ToArray(); this._isValid = !control.ValidationMessages.Any(); StateHasChanged(); }; _formValidationMessages = builder => { var i = 0; builder.OpenComponent <FormValidationMessage <TValue> >(i++); builder.AddAttribute(i++, "Control", control); builder.CloseComponent(); }; if (control.FieldIdentifier.TryGetValidateProperty(out var propertyInfo)) { var requiredAttribute = propertyInfo.GetCustomAttributes(typeof(RequiredAttribute), true); if (requiredAttribute.Length > 0) { _labelCls = $"{_prefixCls}-required"; } } else { throw new InvalidOperationException($"Unable to match property `{control.FieldIdentifier.FieldName}` in Model `{control.FieldIdentifier.Model.GetType()}`, please confirm that the Model contains this property."); } }
protected override void BuildRenderTree(RenderTreeBuilder builder) { bool hasContent = false; foreach (var message in CurrentEditContext.GetValidationMessages(_fieldIdentifier)) { builder.OpenElement(0, "div"); builder.AddMultipleAttributes(1, AdditionalAttributes); builder.AddAttribute(2, "class", "validation-message"); builder.AddContent(3, message); builder.CloseElement(); hasContent = true; } if (AddEmptyErrorDiv && !hasContent) { builder.OpenElement(0, "div"); builder.AddMultipleAttributes(1, AdditionalAttributes); builder.AddAttribute(2, "class", "validation-message"); builder.AddContent(3, (MarkupString)" "); builder.CloseElement(); } }
protected override void OnInitialized() { ValidationMessages = Model is null?CurrentEditContext.GetValidationMessages() : CurrentEditContext.GetValidationMessages(new FieldIdentifier(Model, string.Empty)); }