diff --git a/src/BootstrapBlazor/Components/Table/Table.razor b/src/BootstrapBlazor/Components/Table/Table.razor index e464b841182..fec571f73d8 100644 --- a/src/BootstrapBlazor/Components/Table/Table.razor +++ b/src/BootstrapBlazor/Components/Table/Table.razor @@ -197,8 +197,8 @@ { @@ -206,7 +206,8 @@ else { } @@ -1049,8 +1050,8 @@ { @@ -1058,9 +1059,9 @@ else { + Value="@SearchText" + OnEnterAsync="OnEnterAsync" OnEscAsync="OnEscAsync" + ShowLabel="false" SkipValidate="true" UseInputEvent="AutoSearchOnInput"> } } diff --git a/src/BootstrapBlazor/Components/Table/Table.razor.Search.cs b/src/BootstrapBlazor/Components/Table/Table.razor.Search.cs index c2b39038d4d..0dccb568f99 100644 --- a/src/BootstrapBlazor/Components/Table/Table.razor.Search.cs +++ b/src/BootstrapBlazor/Components/Table/Table.razor.Search.cs @@ -3,7 +3,6 @@ // See the LICENSE file in the project root for more information. // Maintainer: Argo Zhang(argo@live.ca) Website: https://www.blazor.zone -using Microsoft.AspNetCore.Components.Web; using System.Reflection; namespace BootstrapBlazor.Components; @@ -163,11 +162,22 @@ protected async Task ResetSearchClick() Utility.Reset(SearchModel, CreateSearchModel()); } - PageIndex = 1; - await QueryAsync(); + await SearchClick(); await ToggleLoading(false); } + private async Task OnEnterAsync(string? v) + { + SearchText = v; + await SearchClick(); + } + + private async Task OnEscAsync(string? v) + { + SearchText = null; + await ResetSearchClick(); + } + /// /// 查询方法 /// Search Method @@ -304,28 +314,9 @@ 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") - { - await SearchClick(); - } - else if (args.Key == "Escape") - { - await ClearSearchClick(); - } - } - /// - /// 重置搜索按钮调用此方法 - /// Reset Search Button Click Method + /// 点击重置搜索按钮时调用此方法 + /// Method called when the reset search button is clicked /// protected async Task ClearSearchClick() { diff --git a/src/BootstrapBlazor/Components/Table/Table.razor.cs b/src/BootstrapBlazor/Components/Table/Table.razor.cs index 432c56e238a..ecb9f481225 100644 --- a/src/BootstrapBlazor/Components/Table/Table.razor.cs +++ b/src/BootstrapBlazor/Components/Table/Table.razor.cs @@ -18,8 +18,8 @@ namespace BootstrapBlazor.Components; public partial class Table : ITable, IModelEqualityComparer where TItem : class { /// - /// 获得/设置 a value indicating 是否 automatic search functionality is enabled. 默认 value is false - /// Gets or sets a value indicating whether automatic search functionality is enabled. Default value is false + /// 获得/设置 模糊搜索栏输入时是否自动搜索 默认值 false + /// Gets or sets whether to auto search on fuzzy search bar input. Default false /// [Parameter] public bool AutoSearchOnInput { get; set; } diff --git a/test/UnitTest/Components/TableTest.cs b/test/UnitTest/Components/TableTest.cs index 8fc51946753..1475c80485c 100644 --- a/test/UnitTest/Components/TableTest.cs +++ b/test/UnitTest/Components/TableTest.cs @@ -408,10 +408,10 @@ public async Task OnSearchKeyUp_Ok() }); }); }); - var searchBox = cut.Find(".table-toolbar-search"); - await cut.InvokeAsync(() => searchBox.KeyUp(new KeyboardEventArgs() { Key = "Enter" })); - await cut.InvokeAsync(() => searchBox.KeyUp(new KeyboardEventArgs() { Key = "Escape" })); - await cut.InvokeAsync(() => searchBox.Change("0")); + var searchBox = cut.FindComponents>().FirstOrDefault(i => i.Markup.Contains("table-toolbar-search")); + Assert.NotNull(searchBox); + await cut.InvokeAsync(() => searchBox.Instance.EnterCallback()); + await cut.InvokeAsync(() => searchBox.Instance.EscCallback()); Assert.True(resetSearch); }