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);
}