From cbd256e3ff576e0344613177c690f149974c8e82 Mon Sep 17 00:00:00 2001 From: Argo Zhang Date: Sat, 10 May 2025 09:24:16 +0800 Subject: [PATCH 1/3] =?UTF-8?q?feat:=20=E5=A2=9E=E5=8A=A0=E6=AF=94?= =?UTF-8?q?=E8=BE=83=E5=8F=82=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Components/Samples/Table/TablesFilter.razor.cs | 2 +- .../Components/Filters/MultiFilter.razor.cs | 8 +++++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/src/BootstrapBlazor.Server/Components/Samples/Table/TablesFilter.razor.cs b/src/BootstrapBlazor.Server/Components/Samples/Table/TablesFilter.razor.cs index f9361af753d..502f5c74077 100644 --- a/src/BootstrapBlazor.Server/Components/Samples/Table/TablesFilter.razor.cs +++ b/src/BootstrapBlazor.Server/Components/Samples/Table/TablesFilter.razor.cs @@ -46,7 +46,7 @@ private async Task> OnGetAddressItemsAsync() { // 模拟数据库延时 await Task.Delay(500); - return Items.Select(i => new SelectedItem(i.Address!, i.Address!)).DistinctBy(i => i.Value).ToList(); + return [.. Items.Select(i => new SelectedItem(i.Address!, i.Address!)).DistinctBy(i => i.Value)]; } private Task> OnQueryAsync(QueryPageOptions options) diff --git a/src/BootstrapBlazor/Components/Filters/MultiFilter.razor.cs b/src/BootstrapBlazor/Components/Filters/MultiFilter.razor.cs index 44a14c8f8cb..b70cb128d69 100644 --- a/src/BootstrapBlazor/Components/Filters/MultiFilter.razor.cs +++ b/src/BootstrapBlazor/Components/Filters/MultiFilter.razor.cs @@ -46,6 +46,12 @@ public partial class MultiFilter [Parameter] public RenderFragment? LoadingTemplate { get; set; } + /// + /// Gets or sets the compare method used to compare the search text with the items. Default is + /// + [Parameter] + public StringComparison StringComparison { get; set; } = StringComparison.OrdinalIgnoreCase; + private string? _searchText; private List? _source; @@ -226,7 +232,7 @@ private Task OnSearchValueChanged(string? val) { if (!string.IsNullOrEmpty(_searchText)) { - _items = _source.Where(i => i.Text.Contains(_searchText)).ToList(); + _items = [.. _source.Where(i => i.Text.Contains(_searchText, StringComparison))]; } else { From af815090494a95ff1c526cf6ac06edb67f7dd8d8 Mon Sep 17 00:00:00 2001 From: Argo Zhang Date: Sat, 10 May 2025 09:34:16 +0800 Subject: [PATCH 2/3] =?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/Filters/MultiFilter.razor.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/BootstrapBlazor/Components/Filters/MultiFilter.razor.cs b/src/BootstrapBlazor/Components/Filters/MultiFilter.razor.cs index b70cb128d69..9b0af82c035 100644 --- a/src/BootstrapBlazor/Components/Filters/MultiFilter.razor.cs +++ b/src/BootstrapBlazor/Components/Filters/MultiFilter.razor.cs @@ -47,7 +47,7 @@ public partial class MultiFilter public RenderFragment? LoadingTemplate { get; set; } /// - /// Gets or sets the compare method used to compare the search text with the items. Default is + /// Gets or sets the string comparison option used for filtering operations. Default is /// [Parameter] public StringComparison StringComparison { get; set; } = StringComparison.OrdinalIgnoreCase; From 91a33af68c241eeabf60ed651d11d21a3350811c Mon Sep 17 00:00:00 2001 From: Argo Zhang Date: Sat, 10 May 2025 09:34:25 +0800 Subject: [PATCH 3/3] =?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/TableFilterTest.cs | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/test/UnitTest/Components/TableFilterTest.cs b/test/UnitTest/Components/TableFilterTest.cs index ddad78b4f7a..21e24e50674 100644 --- a/test/UnitTest/Components/TableFilterTest.cs +++ b/test/UnitTest/Components/TableFilterTest.cs @@ -101,8 +101,9 @@ public async Task MultiFilter_Ok() { b.OpenComponent(0); b.AddAttribute(1, nameof(MultiFilter.ShowSearch), true); - b.AddAttribute(2, nameof(MultiFilter.OnGetItemsAsync), () => Task.FromResult(new List() { new("test1", "test1") })); - b.AddAttribute(1, nameof(MultiFilter.AlwaysTriggerGetItems), true); + b.AddAttribute(2, nameof(MultiFilter.StringComparison), StringComparison.OrdinalIgnoreCase); + b.AddAttribute(3, nameof(MultiFilter.OnGetItemsAsync), () => Task.FromResult(new List() { new("test1", "test1") })); + b.AddAttribute(4, nameof(MultiFilter.AlwaysTriggerGetItems), true); b.CloseComponent(); })); builder.CloseComponent();