diff --git a/src/BootstrapBlazor/BootstrapBlazor.csproj b/src/BootstrapBlazor/BootstrapBlazor.csproj index 27c98047a53..536c74f936a 100644 --- a/src/BootstrapBlazor/BootstrapBlazor.csproj +++ b/src/BootstrapBlazor/BootstrapBlazor.csproj @@ -1,7 +1,7 @@  - 9.8.0-beta03 + 9.8.0-beta04 diff --git a/src/BootstrapBlazor/Components/Table/Table.razor b/src/BootstrapBlazor/Components/Table/Table.razor index 015bc9f1397..5088c1de3aa 100644 --- a/src/BootstrapBlazor/Components/Table/Table.razor +++ b/src/BootstrapBlazor/Components/Table/Table.razor @@ -169,12 +169,18 @@ @if (ShowSearchTextTooltip) { - + + } else { - + + } } @if (ShowSearchButton) @@ -984,13 +990,17 @@ @if (ShowSearchTextTooltip) { - + } else { - + } } diff --git a/src/BootstrapBlazor/Components/Table/Table.razor.Search.cs b/src/BootstrapBlazor/Components/Table/Table.razor.Search.cs index 69b419797f8..0d652b430c6 100644 --- a/src/BootstrapBlazor/Components/Table/Table.razor.Search.cs +++ b/src/BootstrapBlazor/Components/Table/Table.razor.Search.cs @@ -279,6 +279,13 @@ protected List GetAdvanceSearches() /// protected List GetSearches() => Columns.Where(col => col.GetSearchable()).ToSearches(SearchText); + private async Task OnSearchTextValueChanged(string? value) + { + SearchText = value; + + await SearchClick(); + } + private async Task OnSearchKeyUp(KeyboardEventArgs args) { if (args.Key == "Enter") diff --git a/src/BootstrapBlazor/Components/Table/Table.razor.cs b/src/BootstrapBlazor/Components/Table/Table.razor.cs index 31eb1c3c2d2..4afae42b278 100644 --- a/src/BootstrapBlazor/Components/Table/Table.razor.cs +++ b/src/BootstrapBlazor/Components/Table/Table.razor.cs @@ -16,6 +16,12 @@ namespace BootstrapBlazor.Components; [CascadingTypeParameter(nameof(TItem))] public partial class Table : ITable, IModelEqualityComparer where TItem : class { + /// + /// Gets or sets a value indicating whether automatic search functionality is enabled. Default value is false. + /// + [Parameter] + public bool AutoSearchOnInput { get; set; } + /// /// 获得/设置 不支持过滤类型提示信息 默认 null 读取资源文件内容 /// diff --git a/test/UnitTest/Components/TableTest.cs b/test/UnitTest/Components/TableTest.cs index cf3fb5b1278..8ff356a28f2 100644 --- a/test/UnitTest/Components/TableTest.cs +++ b/test/UnitTest/Components/TableTest.cs @@ -377,7 +377,7 @@ public async Task ShowSearch_Ok() } [Fact] - public void OnSearchKeyUp_Ok() + public async Task OnSearchKeyUp_Ok() { var resetSearch = false; var localizer = Context.Services.GetRequiredService>(); @@ -389,6 +389,7 @@ public void OnSearchKeyUp_Ok() pb.Add(a => a.ShowToolbar, true); pb.Add(a => a.ShowSearch, true); pb.Add(a => a.ShowSearchText, true); + pb.Add(a => a.AutoSearchOnInput, false); pb.Add(a => a.ShowSearchTextTooltip, false); pb.Add(a => a.SearchMode, SearchMode.Top); pb.Add(a => a.Items, Foo.GenerateFoo(localizer, 2)); @@ -407,8 +408,9 @@ public void OnSearchKeyUp_Ok() }); }); var searchBox = cut.Find(".table-toolbar-search"); - cut.InvokeAsync(() => searchBox.KeyUp(new KeyboardEventArgs() { Key = "Enter" })); - cut.InvokeAsync(() => searchBox.KeyUp(new KeyboardEventArgs() { Key = "Escape" })); + await cut.InvokeAsync(() => searchBox.KeyUp(new KeyboardEventArgs() { Key = "Enter" })); + await cut.InvokeAsync(() => searchBox.KeyUp(new KeyboardEventArgs() { Key = "Escape" })); + await cut.InvokeAsync(() => searchBox.Change("0")); Assert.True(resetSearch); }