Skip to content

Commit f89a1fa

Browse files
authored
feat(MultiFilter): add StringComparison parameter (#6010)
* feat: 增加比较参数 * doc: 更新注释 * test: 更新单元测试
1 parent d86aa37 commit f89a1fa

File tree

3 files changed

+11
-4
lines changed

3 files changed

+11
-4
lines changed

src/BootstrapBlazor.Server/Components/Samples/Table/TablesFilter.razor.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ private async Task<List<SelectedItem>> OnGetAddressItemsAsync()
4646
{
4747
// 模拟数据库延时
4848
await Task.Delay(500);
49-
return Items.Select(i => new SelectedItem(i.Address!, i.Address!)).DistinctBy(i => i.Value).ToList();
49+
return [.. Items.Select(i => new SelectedItem(i.Address!, i.Address!)).DistinctBy(i => i.Value)];
5050
}
5151

5252
private Task<QueryData<Foo>> OnQueryAsync(QueryPageOptions options)

src/BootstrapBlazor/Components/Filters/MultiFilter.razor.cs

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,12 @@ public partial class MultiFilter
4646
[Parameter]
4747
public RenderFragment? LoadingTemplate { get; set; }
4848

49+
/// <summary>
50+
/// Gets or sets the string comparison option used for filtering operations. Default is <see cref="StringComparison.OrdinalIgnoreCase"/>
51+
/// </summary>
52+
[Parameter]
53+
public StringComparison StringComparison { get; set; } = StringComparison.OrdinalIgnoreCase;
54+
4955
private string? _searchText;
5056

5157
private List<SelectedItem>? _source;
@@ -226,7 +232,7 @@ private Task OnSearchValueChanged(string? val)
226232
{
227233
if (!string.IsNullOrEmpty(_searchText))
228234
{
229-
_items = _source.Where(i => i.Text.Contains(_searchText)).ToList();
235+
_items = [.. _source.Where(i => i.Text.Contains(_searchText, StringComparison))];
230236
}
231237
else
232238
{

test/UnitTest/Components/TableFilterTest.cs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -101,8 +101,9 @@ public async Task MultiFilter_Ok()
101101
{
102102
b.OpenComponent<MultiFilter>(0);
103103
b.AddAttribute(1, nameof(MultiFilter.ShowSearch), true);
104-
b.AddAttribute(2, nameof(MultiFilter.OnGetItemsAsync), () => Task.FromResult(new List<SelectedItem>() { new("test1", "test1") }));
105-
b.AddAttribute(1, nameof(MultiFilter.AlwaysTriggerGetItems), true);
104+
b.AddAttribute(2, nameof(MultiFilter.StringComparison), StringComparison.OrdinalIgnoreCase);
105+
b.AddAttribute(3, nameof(MultiFilter.OnGetItemsAsync), () => Task.FromResult(new List<SelectedItem>() { new("test1", "test1") }));
106+
b.AddAttribute(4, nameof(MultiFilter.AlwaysTriggerGetItems), true);
106107
b.CloseComponent();
107108
}));
108109
builder.CloseComponent();

0 commit comments

Comments
 (0)