From 2202a9302acb3af635078ae9442cd0480097030a Mon Sep 17 00:00:00 2001 From: Argo Zhang Date: Thu, 10 Apr 2025 17:33:37 +0800 Subject: [PATCH 1/3] =?UTF-8?q?refactor:=20=E9=87=8D=E6=9E=84=20DefaultVir?= =?UTF-8?q?tualizeItemText=20=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Components/Select/Select.razor.cs | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/src/BootstrapBlazor/Components/Select/Select.razor.cs b/src/BootstrapBlazor/Components/Select/Select.razor.cs index 07b418f8785..faeca2acc00 100644 --- a/src/BootstrapBlazor/Components/Select/Select.razor.cs +++ b/src/BootstrapBlazor/Components/Select/Select.razor.cs @@ -156,6 +156,8 @@ public partial class Select : ISelect, ILookup private ItemsProviderResult _result; + private string _defaultVirtualizedItemText = ""; + private SelectedItem? SelectedItem { get; set; } private SelectedItem? SelectedRow @@ -175,7 +177,7 @@ private SelectedItem? SelectedRow return null; } - var item = IsVirtualize ? GetItemByVirtulized() : GetItemByRows(); + var item = IsVirtualize ? GetItemByVirtualized() : GetItemByRows(); if (item != null) { if (_init && DisableItemChangedWhenFirstRender) @@ -193,7 +195,7 @@ private SelectedItem? SelectedRow private SelectedItem? GetItemWithEnumValue() => ValueType.IsEnum ? Rows.Find(i => i.Value == Convert.ToInt32(Value).ToString()) : null; - private SelectedItem GetItemByVirtulized() => new(CurrentValueAsString, DefaultVirtualizeItemText ?? CurrentValueAsString); + private SelectedItem GetItemByVirtualized() => new(CurrentValueAsString, _defaultVirtualizedItemText); private SelectedItem? GetItemByRows() { @@ -204,6 +206,16 @@ private SelectedItem? SelectedRow return item; } + /// + /// + /// + protected override void OnInitialized() + { + base.OnInitialized(); + + _defaultVirtualizedItemText = DefaultVirtualizeItemText ?? CurrentValueAsString; + } + /// /// /// @@ -363,6 +375,7 @@ private async Task OnClickItem(SelectedItem item) } if (ret) { + _defaultVirtualizedItemText = item.Text; await SelectedItemChanged(item); } } From 02b7625d34f2e3b248f0f1fac73e26c751f6c07d Mon Sep 17 00:00:00 2001 From: Argo Zhang Date: Thu, 10 Apr 2025 17:33:44 +0800 Subject: [PATCH 2/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/SelectTest.cs | 25 +++++++++++++++++++++++-- 1 file changed, 23 insertions(+), 2 deletions(-) diff --git a/test/UnitTest/Components/SelectTest.cs b/test/UnitTest/Components/SelectTest.cs index 7f4faa7d893..180d5f63dd7 100644 --- a/test/UnitTest/Components/SelectTest.cs +++ b/test/UnitTest/Components/SelectTest.cs @@ -761,7 +761,7 @@ public void ItemClick_Ok() } [Fact] - public void DefaultVirtualizeItemText_Ok() + public void DefaultVirtualizeItemText_Null() { var cut = Context.RenderComponent>(pb => { @@ -776,12 +776,33 @@ public void DefaultVirtualizeItemText_Ok() var input = cut.Find(".form-select"); Assert.Contains("value=\"3\"", input.OuterHtml); + } - cut.SetParametersAndRender(pb => + [Fact] + public async Task DefaultVirtualizeItemText_Ok() + { + var cut = Context.RenderComponent>(pb => { + pb.Add(a => a.Items, new SelectedItem[] + { + new("1", "Test1"), + new("2", "Test2") + }); + pb.Add(a => a.Value, "3"); + pb.Add(a => a.IsVirtualize, true); pb.Add(a => a.DefaultVirtualizeItemText, "Test3"); }); + + var input = cut.Find(".form-select"); Assert.Contains("value=\"Test3\"", input.OuterHtml); + + var items = cut.FindAll(".dropdown-item"); + Assert.Equal(2, items.Count); + + var item = items[1]; + await cut.InvokeAsync(() => item.Click()); + input = cut.Find(".form-select"); + Assert.Contains("value=\"Test2\"", input.OuterHtml); } [Fact] From 55ab8ac13d37bb7bdc1bd150cef1b1f1b8800c92 Mon Sep 17 00:00:00 2001 From: Argo Zhang Date: Thu, 10 Apr 2025 18:01:33 +0800 Subject: [PATCH 3/3] chore: bump version 9.5.6-beta01 --- src/BootstrapBlazor/BootstrapBlazor.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/BootstrapBlazor/BootstrapBlazor.csproj b/src/BootstrapBlazor/BootstrapBlazor.csproj index bafc8bb9971..825b196c690 100644 --- a/src/BootstrapBlazor/BootstrapBlazor.csproj +++ b/src/BootstrapBlazor/BootstrapBlazor.csproj @@ -1,7 +1,7 @@  - 9.5.5 + 9.5.6-beta01