mirror of
https://github.com/radzenhq/radzen-blazor.git
synced 2026-02-04 05:35:44 +00:00
63 lines
2.9 KiB
C#
63 lines
2.9 KiB
C#
using Microsoft.AspNetCore.Components;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
|
|
namespace Radzen.Blazor
|
|
{
|
|
/// <summary>
|
|
/// A validator component that ensures a form input component has a non-empty value.
|
|
/// RadzenRequiredValidator verifies that required fields are filled before form submission.
|
|
/// Must be placed inside a <see cref="RadzenTemplateForm{TItem}"/> and associated with a named input component.
|
|
/// Checks if the associated component has a value (HasValue returns true) and that the value is not equal to the optional DefaultValue.
|
|
/// For text inputs, an empty string is considered invalid. For dropdowns and other components, null or default values are considered invalid.
|
|
/// The validation message can be customized via the Text property and displayed inline, as a block, or as a popup depending on the Style property.
|
|
/// </summary>
|
|
/// <example>
|
|
/// Basic required field validation:
|
|
/// <code>
|
|
/// <RadzenTemplateForm TItem="Model" Data=@model>
|
|
/// <RadzenTextBox style="display: block" Name="Email" @bind-Value=@model.Email />
|
|
/// <RadzenRequiredValidator Component="Email" Text="Email is required" Style="position: absolute" />
|
|
/// </RadzenTemplateForm>
|
|
/// @code {
|
|
/// class Model
|
|
/// {
|
|
/// public string Email { get; set; }
|
|
/// }
|
|
///
|
|
/// Model model = new Model();
|
|
/// }
|
|
/// </code>
|
|
/// Dropdown validation with default value:
|
|
/// <code>
|
|
/// <RadzenDropDown Name="Country" @bind-Value=@model.CountryId Data=@countries />
|
|
/// <RadzenRequiredValidator Component="Country" DefaultValue="0" Text="Please select a country" />
|
|
/// </code>
|
|
/// </example>
|
|
public class RadzenRequiredValidator : ValidatorBase
|
|
{
|
|
/// <summary>
|
|
/// Gets or sets the error message displayed when the associated component is invalid (has no value or has the default value).
|
|
/// This message helps users understand what is required to pass validation.
|
|
/// </summary>
|
|
/// <value>The validation error message. Default is "Required".</value>
|
|
[Parameter]
|
|
public override string Text { get; set; } = "Required";
|
|
|
|
/// <inheritdoc />
|
|
protected override bool Validate(IRadzenFormComponent component)
|
|
{
|
|
ArgumentNullException.ThrowIfNull(component);
|
|
return component.HasValue && !object.Equals(DefaultValue, component.GetValue());
|
|
}
|
|
|
|
/// <summary>
|
|
/// Gets or sets a default value that should be considered invalid (empty).
|
|
/// For example, set to 0 for numeric dropdowns where 0 represents "not selected", or empty Guid for Guid fields.
|
|
/// If the component's value equals this DefaultValue, validation will fail.
|
|
/// </summary>
|
|
/// <value>The value to treat as empty/invalid. Default is null.</value>
|
|
[Parameter]
|
|
public object? DefaultValue { get; set; }
|
|
}
|
|
} |