Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion src/BootstrapBlazor/BootstrapBlazor.csproj
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk.Razor">

<PropertyGroup>
<Version>9.6.5-beta03</Version>
<Version>9.7.0</Version>
</PropertyGroup>

<ItemGroup>
Expand Down
2 changes: 1 addition & 1 deletion src/BootstrapBlazor/Components/Select/MultiSelect.razor.cs
Original file line number Diff line number Diff line change
Expand Up @@ -454,7 +454,7 @@ private async Task SetValue()
var validationResults = new List<ValidationResult>();

await ValidatePropertyAsync(CurrentValue, validationContext, validationResults);
ToggleMessage(validationResults);
await ToggleMessage(validationResults);
}

if (OnSelectedItemsChanged != null)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -430,7 +430,7 @@ private async Task SetValue()
var validationResults = new List<ValidationResult>();

await ValidatePropertyAsync(CurrentValue, validationContext, validationResults);
ToggleMessage(validationResults);
await ToggleMessage(validationResults);
}

if (OnSelectedItemsChanged != null)
Expand Down
2 changes: 1 addition & 1 deletion src/BootstrapBlazor/Components/Transfer/Transfer.razor.cs
Original file line number Diff line number Diff line change
Expand Up @@ -317,7 +317,7 @@ private async Task TransferItems(List<SelectedItem> source, List<SelectedItem> t
var validationResults = new List<ValidationResult>();

await ValidatePropertyAsync(RightItems, validationContext, validationResults);
ToggleMessage(validationResults);
await ToggleMessage(validationResults);
}
}
}
Expand Down
3 changes: 2 additions & 1 deletion src/BootstrapBlazor/Components/Upload/InputUpload.razor.cs
Original file line number Diff line number Diff line change
Expand Up @@ -153,7 +153,7 @@ private async Task OnDeleteFile()
/// <inheritdoc/>
/// </summary>
/// <param name="results"></param>
public override void ToggleMessage(IEnumerable<ValidationResult> results)
public override Task ToggleMessage(IReadOnlyCollection<ValidationResult> results)
{
if (results.Any())
{
Expand All @@ -166,5 +166,6 @@ public override void ToggleMessage(IEnumerable<ValidationResult> results)
IsValid = true;
}
OnValidate(IsValid);
return Task.CompletedTask;
}
}
5 changes: 3 additions & 2 deletions src/BootstrapBlazor/Components/Upload/UploadBase.cs
Original file line number Diff line number Diff line change
Expand Up @@ -57,10 +57,10 @@ public abstract class UploadBase<TValue> : ValidateBase<TValue>, IUpload
public Func<UploadFile, Task>? OnChange { get; set; }

/// <summary>
/// 显示/隐藏验证结果方法
/// <inheritdoc/>
/// </summary>
/// <param name="results"></param>
public override void ToggleMessage(IEnumerable<ValidationResult> results)
public override Task ToggleMessage(IReadOnlyCollection<ValidationResult> results)
{
if (FieldIdentifier != null)
{
Expand All @@ -84,6 +84,7 @@ public override void ToggleMessage(IEnumerable<ValidationResult> results)
}
OnValidate(IsValid);
}
return Task.CompletedTask;
}

/// <summary>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,5 +33,5 @@ public interface IValidateComponent
/// 显示或者隐藏提示信息方法
/// </summary>
/// <param name="results"></param>
void ToggleMessage(IEnumerable<ValidationResult> results);
Task ToggleMessage(IReadOnlyCollection<ValidationResult> results);
}
3 changes: 2 additions & 1 deletion src/BootstrapBlazor/Components/Validate/ValidateBase.cs
Original file line number Diff line number Diff line change
Expand Up @@ -460,7 +460,7 @@ private void ValidateType(ValidationContext context, List<ValidationResult> resu
/// 显示/隐藏验证结果方法
/// </summary>
/// <param name="results"></param>
public virtual void ToggleMessage(IEnumerable<ValidationResult> results)
public virtual Task ToggleMessage(IReadOnlyCollection<ValidationResult> results)
{
if (FieldIdentifier != null)
{
Expand All @@ -481,6 +481,7 @@ public virtual void ToggleMessage(IEnumerable<ValidationResult> results)

// 必须刷新一次 UI 保证状态正确
StateHasChanged();
return Task.CompletedTask;
}

private JSModule? ValidateModule { get; set; }
Expand Down
20 changes: 10 additions & 10 deletions src/BootstrapBlazor/Components/ValidateForm/ValidateForm.razor.cs
Original file line number Diff line number Diff line change
Expand Up @@ -169,20 +169,20 @@ internal void AddValidator((string FieldName, Type ModelType) key, (FieldIdentif
/// </summary>
/// <param name="expression"></param>
/// <param name="errorMessage">错误描述信息,可为空,为空时查找资源文件</param>
public void SetError<TModel>(Expression<Func<TModel, object?>> expression, string errorMessage)
public async Task SetError<TModel>(Expression<Func<TModel, object?>> expression, string errorMessage)
{
switch (expression.Body)
{
case UnaryExpression { Operand: MemberExpression mem }:
InternalSetError(mem, errorMessage);
await InternalSetError(mem, errorMessage);
break;
case MemberExpression exp:
InternalSetError(exp, errorMessage);
await InternalSetError(exp, errorMessage);
break;
}
}

private void InternalSetError(MemberExpression exp, string errorMessage)
private async Task InternalSetError(MemberExpression exp, string errorMessage)
{
if (exp.Expression != null)
{
Expand All @@ -198,7 +198,7 @@ private void InternalSetError(MemberExpression exp, string errorMessage)
{
new(errorMessage, [fieldName])
};
validator.ToggleMessage(results);
await validator.ToggleMessage(results);
}
}

Expand All @@ -207,15 +207,15 @@ private void InternalSetError(MemberExpression exp, string errorMessage)
/// </summary>
/// <param name="propertyName">字段名,可以使用多层,如 a.b.c</param>
/// <param name="errorMessage">错误描述信息,可为空,为空时查找资源文件</param>
public void SetError(string propertyName, string errorMessage)
public async Task SetError(string propertyName, string errorMessage)
{
if (TryGetModelField(propertyName, out var modelType, out var fieldName) && TryGetValidator(modelType, fieldName, out var validator))
{
var results = new List<ValidationResult>
{
new(errorMessage, [fieldName])
};
validator.ToggleMessage(results);
await validator.ToggleMessage(results);
}
}

Expand Down Expand Up @@ -327,7 +327,7 @@ internal async Task ValidateObject(ValidationContext context, List<ValidationRes
ValidMemberNames.RemoveAll(name => _validateResults.Values.SelectMany(i => i).Any(i => i.MemberNames.Contains(name)));
foreach (var (validator, messages) in _validateResults)
{
validator.ToggleMessage(messages);
await validator.ToggleMessage(messages);
}
}
}
Expand All @@ -352,7 +352,7 @@ internal async Task ValidateFieldAsync(ValidationContext context, List<Validatio
}

// 客户端提示
validator.ToggleMessage(results);
await validator.ToggleMessage(results);
}
}
}
Expand Down Expand Up @@ -477,7 +477,7 @@ private async Task ValidateProperty(ValidationContext context, List<ValidationRe
await ValidateAsync(validator, context, messages, pi, propertyValue);

// 客户端提示
validator.ToggleMessage(messages);
await validator.ToggleMessage(messages);
}
results.AddRange(messages);
}
Expand Down