diff --git a/src/BootstrapBlazor/BootstrapBlazor.csproj b/src/BootstrapBlazor/BootstrapBlazor.csproj index 26e16d5f31c..9ba9b1db1d0 100644 --- a/src/BootstrapBlazor/BootstrapBlazor.csproj +++ b/src/BootstrapBlazor/BootstrapBlazor.csproj @@ -1,7 +1,7 @@ - 9.1.3 + 9.1.4 diff --git a/src/BootstrapBlazor/Components/Select/Select.razor.cs b/src/BootstrapBlazor/Components/Select/Select.razor.cs index 7ebddb0dda0..dc6b1eb871f 100644 --- a/src/BootstrapBlazor/Components/Select/Select.razor.cs +++ b/src/BootstrapBlazor/Components/Select/Select.razor.cs @@ -323,6 +323,21 @@ protected override void OnParametersSet() SelectedItem = null; } + /// + /// + /// + /// + protected override async Task OnAfterRenderAsync(bool firstRender) + { + await base.OnAfterRenderAsync(firstRender); + + if (firstRender) + { + await RefreshVirtualizeElement(); + StateHasChanged(); + } + } + /// /// 获得/设置 数据总条目 /// @@ -356,7 +371,12 @@ private async Task SearchTextChanged(string val) { _itemsCache = null; SearchText = val; - if (OnQueryAsync != null) + await RefreshVirtualizeElement(); + } + + private async Task RefreshVirtualizeElement() + { + if (IsVirtualize && OnQueryAsync != null) { // 通过 ItemProvider 提供数据 await VirtualizeElement.RefreshDataAsync(); diff --git a/src/BootstrapBlazor/Components/SelectGeneric/SelectGeneric.razor.cs b/src/BootstrapBlazor/Components/SelectGeneric/SelectGeneric.razor.cs index 9f72a898ff1..62a3ee59e39 100644 --- a/src/BootstrapBlazor/Components/SelectGeneric/SelectGeneric.razor.cs +++ b/src/BootstrapBlazor/Components/SelectGeneric/SelectGeneric.razor.cs @@ -346,6 +346,21 @@ protected override void OnParametersSet() SelectedItem = null; } + /// + /// + /// + /// + protected override async Task OnAfterRenderAsync(bool firstRender) + { + await base.OnAfterRenderAsync(firstRender); + + if (firstRender) + { + await RefreshVirtualizeElement(); + StateHasChanged(); + } + } + /// /// 获得/设置 数据总条目 /// @@ -379,8 +394,12 @@ private async Task SearchTextChanged(string val) { SearchText = val; _itemsCache = null; + await RefreshVirtualizeElement(); + } - if (OnQueryAsync != null) + private async Task RefreshVirtualizeElement() + { + if (IsVirtualize && OnQueryAsync != null) { // 通过 ItemProvider 提供数据 await VirtualizeElement.RefreshDataAsync(); diff --git a/test/UnitTest/Components/SelectTest.cs b/test/UnitTest/Components/SelectTest.cs index 58570fe5621..015d83b1a59 100644 --- a/test/UnitTest/Components/SelectTest.cs +++ b/test/UnitTest/Components/SelectTest.cs @@ -773,7 +773,7 @@ public async Task IsVirtualize_BindValue() }); var input = cut.Find(".form-select"); - Assert.Null(input.GetAttribute("value")); + Assert.Equal("3", input.GetAttribute("value")); var select = cut.Instance; Assert.Equal("3", select.Value?.Value);