From f406072c3605109adfb56d69fb5cce4ebf04e611 Mon Sep 17 00:00:00 2001 From: Argo Zhang Date: Sun, 15 Feb 2026 09:37:48 +0800 Subject: [PATCH 1/7] =?UTF-8?q?doc:=20=E6=9B=B4=E6=96=B0=E6=B3=A8=E9=87=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/BootstrapBlazor/Components/Table/Table.razor.Search.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/BootstrapBlazor/Components/Table/Table.razor.Search.cs b/src/BootstrapBlazor/Components/Table/Table.razor.Search.cs index c2b39038d4d..c5c99cddaeb 100644 --- a/src/BootstrapBlazor/Components/Table/Table.razor.Search.cs +++ b/src/BootstrapBlazor/Components/Table/Table.razor.Search.cs @@ -324,8 +324,8 @@ private async Task OnSearchKeyUp(KeyboardEventArgs args) } /// - /// 重置搜索按钮调用此方法 - /// Reset Search Button Click Method + /// 点击重置搜索按钮时调用此方法 + /// Method called when the reset search button is clicked /// protected async Task ClearSearchClick() { From ff74b6799fbcca2078bc9aa952785e92ad3a15eb Mon Sep 17 00:00:00 2001 From: Argo Zhang Date: Sun, 15 Feb 2026 09:39:17 +0800 Subject: [PATCH 2/7] =?UTF-8?q?feat(Table):=20=E5=A2=9E=E5=8A=A0=20OnEnter?= =?UTF-8?q?Async=20OnEscAsync=20=E5=9B=9E=E8=B0=83=E6=96=B9=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Components/Table/Table.razor | 17 +++++++++-------- .../Components/Table/Table.razor.Search.cs | 13 ++++++++++++- 2 files changed, 21 insertions(+), 9 deletions(-) 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 c5c99cddaeb..f748f8aece4 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; @@ -168,6 +167,18 @@ protected async Task ResetSearchClick() 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 From 10b64311a8e5332c609a126579b45db9fab5452c Mon Sep 17 00:00:00 2001 From: Argo Zhang Date: Sun, 15 Feb 2026 09:39:33 +0800 Subject: [PATCH 3/7] =?UTF-8?q?doc:=20=E6=9B=B4=E6=96=B0=E6=B3=A8=E9=87=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/BootstrapBlazor/Components/Table/Table.razor.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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; } From 5f1d40fdce30962d11b3af3a27a0acf9116e1c32 Mon Sep 17 00:00:00 2001 From: Argo Zhang Date: Sun, 15 Feb 2026 09:40:01 +0800 Subject: [PATCH 4/7] =?UTF-8?q?refactor:=20=E5=A4=8D=E7=94=A8=E4=BB=A3?= =?UTF-8?q?=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/BootstrapBlazor/Components/Table/Table.razor.Search.cs | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/BootstrapBlazor/Components/Table/Table.razor.Search.cs b/src/BootstrapBlazor/Components/Table/Table.razor.Search.cs index f748f8aece4..3c1b47003ac 100644 --- a/src/BootstrapBlazor/Components/Table/Table.razor.Search.cs +++ b/src/BootstrapBlazor/Components/Table/Table.razor.Search.cs @@ -162,8 +162,7 @@ protected async Task ResetSearchClick() Utility.Reset(SearchModel, CreateSearchModel()); } - PageIndex = 1; - await QueryAsync(); + await SearchClick(); await ToggleLoading(false); } From 374322113b8eacedea8869d1eabbfe1f2423f3fe Mon Sep 17 00:00:00 2001 From: Argo Zhang Date: Sun, 15 Feb 2026 09:41:04 +0800 Subject: [PATCH 5/7] =?UTF-8?q?refactor:=20=E7=A7=BB=E9=99=A4=20OnSearchKe?= =?UTF-8?q?yUp=20=E6=96=B9=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Components/Table/Table.razor.Search.cs | 12 ------------ 1 file changed, 12 deletions(-) diff --git a/src/BootstrapBlazor/Components/Table/Table.razor.Search.cs b/src/BootstrapBlazor/Components/Table/Table.razor.Search.cs index 3c1b47003ac..66aeb36502c 100644 --- a/src/BootstrapBlazor/Components/Table/Table.razor.Search.cs +++ b/src/BootstrapBlazor/Components/Table/Table.razor.Search.cs @@ -321,18 +321,6 @@ private async Task OnSearchTextValueChanged(string? value) await SearchClick(); } - private async Task OnSearchKeyUp(KeyboardEventArgs args) - { - if (args.Key == "Enter") - { - await SearchClick(); - } - else if (args.Key == "Escape") - { - await ClearSearchClick(); - } - } - /// /// 点击重置搜索按钮时调用此方法 /// Method called when the reset search button is clicked From eb714c87198102048366cfb5483e3e5dc4b18395 Mon Sep 17 00:00:00 2001 From: Argo Zhang Date: Sun, 15 Feb 2026 09:56:12 +0800 Subject: [PATCH 6/7] =?UTF-8?q?refactor:=20=E7=A7=BB=E9=99=A4=E5=86=97?= =?UTF-8?q?=E4=BD=99=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/BootstrapBlazor/Components/Table/Table.razor.Search.cs | 7 ------- 1 file changed, 7 deletions(-) diff --git a/src/BootstrapBlazor/Components/Table/Table.razor.Search.cs b/src/BootstrapBlazor/Components/Table/Table.razor.Search.cs index 66aeb36502c..0dccb568f99 100644 --- a/src/BootstrapBlazor/Components/Table/Table.razor.Search.cs +++ b/src/BootstrapBlazor/Components/Table/Table.razor.Search.cs @@ -314,13 +314,6 @@ protected List GetAdvanceSearches() /// protected List GetSearches() => Columns.Where(col => col.GetSearchable()).ToSearches(SearchText); - private async Task OnSearchTextValueChanged(string? value) - { - SearchText = value; - - await SearchClick(); - } - /// /// 点击重置搜索按钮时调用此方法 /// Method called when the reset search button is clicked From 55f076b8e0c951d0226723bfcf7874af097c815f Mon Sep 17 00:00:00 2001 From: Argo Zhang Date: Sun, 15 Feb 2026 09:56:20 +0800 Subject: [PATCH 7/7] =?UTF-8?q?test:=20=E6=9B=B4=E6=96=B0=E5=8D=95?= =?UTF-8?q?=E5=85=83=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- test/UnitTest/Components/TableTest.cs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) 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); }