BlazorDatasheet 에서 Cell 에 대한 Validation 을 처리하기 위해서는 IDataValidator 를 상속받아 Validator 를 구현하여 처리가 가능합니다.
IDataValidator 에는 IsValid 를 이용해서 Validation 을 처리할 수 있고
Message 를 이용해서 메세지를 띄워줄수 있습니다.
IsStrict 값이 true 인 경우 입력 자체를 방지하고 false 로 하면 입력은 되지만 글자가 빨간색이 됩니다.
/// <summary>
/// 특정 문자열 입력 방지 하기
/// </summary>
public class CharacterValidator : IDataValidator
{
/// <summary>
/// IsStrict=true이면 편집 중에 검증이 실패해도 셀의 값은 변경되지 않습니다.
/// IsStrict=false이면 셀 값은 변경되지만 셀은 유효하지 않은 것으로 표시됩니다.
/// </summary>
public bool IsStrict { get; }
/// <summary>
/// 검증기의 메시지로, 사용자가 어떤 검증이 실패했는지 알아내는 데 도움이 됩니다.
/// </summary>
public string Message => $"The value must not contain the character '{forbiddenString}'.";
/// <summary>
/// 입력 방지할 문자열 리스트
/// </summary>
public List<string> ForbiddenList { get; }
/// <summary>
/// 문제가 된 문자열
/// </summary>
private string? forbiddenString;
/// <summary>
/// CharacterValidator
/// </summary>
/// <param name="forbiddens"></param>
/// <param name="isStrict"></param>
public CharacterValidator(string forbiddens, bool isStrict)
{
ForbiddenList = forbiddens.Split(',').ToList();
IsStrict = isStrict;
}
/// <summary>
/// 값이 검증을 통과하는지 여부를 반환합니다. true 면 유효성 통과
/// </summary>
/// <param name="value"></param>
/// <returns></returns>
public bool IsValid(CellValue value)
{
if (value.IsEmpty || value.IsError())
return false;
var str = value.GetValue<string>();
var containedString = ForbiddenList.FirstOrDefault(str.Contains);
forbiddenString = containedString;
return containedString == null;
}
}
위 만든 CharacterValidator 를 sheet.Validators 에 추가합니다.
var characterValidator = new CharacterValidator("a,b,c", true);
sheet.Validators.Add(new ColumnRegion(3), characterValidator);
위 코드를 보면 알 수 있듯이 a,b,c 값이 입력이 되면 에러 창이 뜨고 입력이 더이상 진행되지 않습니다.
결과
cell 값이 a 가 들어가 있어 문제가된 문자열을 포함한 메세지를 보여줍니다.
MudBlazor.Extensions 사용하기 - Dialog Drag (0) | 2025.03.24 |
---|---|
BlazorDatasheet 에서 특정 값인 경우 배경색 변경하기 (0) | 2025.03.23 |
MudBlzaor MudTextField 언더라인 제거하기 (delete underline) (0) | 2025.03.19 |
MudBlzaor MudDataGrid Header 가운데 정렬 및 배경색 변경하기 (0) | 2025.03.19 |
MudBlzaor MudDataGrid 에서 입력 가능한 셀 만들기 (0) | 2025.03.19 |