Skip to content

Commit 2202a93

Browse files
committed
refactor: 重构 DefaultVirtualizeItemText 逻辑
1 parent 9f4c21d commit 2202a93

File tree

1 file changed

+15
-2
lines changed

1 file changed

+15
-2
lines changed

src/BootstrapBlazor/Components/Select/Select.razor.cs

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -156,6 +156,8 @@ public partial class Select<TValue> : ISelect, ILookup
156156

157157
private ItemsProviderResult<SelectedItem> _result;
158158

159+
private string _defaultVirtualizedItemText = "";
160+
159161
private SelectedItem? SelectedItem { get; set; }
160162

161163
private SelectedItem? SelectedRow
@@ -175,7 +177,7 @@ private SelectedItem? SelectedRow
175177
return null;
176178
}
177179

178-
var item = IsVirtualize ? GetItemByVirtulized() : GetItemByRows();
180+
var item = IsVirtualize ? GetItemByVirtualized() : GetItemByRows();
179181
if (item != null)
180182
{
181183
if (_init && DisableItemChangedWhenFirstRender)
@@ -193,7 +195,7 @@ private SelectedItem? SelectedRow
193195

194196
private SelectedItem? GetItemWithEnumValue() => ValueType.IsEnum ? Rows.Find(i => i.Value == Convert.ToInt32(Value).ToString()) : null;
195197

196-
private SelectedItem GetItemByVirtulized() => new(CurrentValueAsString, DefaultVirtualizeItemText ?? CurrentValueAsString);
198+
private SelectedItem GetItemByVirtualized() => new(CurrentValueAsString, _defaultVirtualizedItemText);
197199

198200
private SelectedItem? GetItemByRows()
199201
{
@@ -204,6 +206,16 @@ private SelectedItem? SelectedRow
204206
return item;
205207
}
206208

209+
/// <summary>
210+
/// <inheritdoc/>
211+
/// </summary>
212+
protected override void OnInitialized()
213+
{
214+
base.OnInitialized();
215+
216+
_defaultVirtualizedItemText = DefaultVirtualizeItemText ?? CurrentValueAsString;
217+
}
218+
207219
/// <summary>
208220
/// <inheritdoc/>
209221
/// </summary>
@@ -363,6 +375,7 @@ private async Task OnClickItem(SelectedItem item)
363375
}
364376
if (ret)
365377
{
378+
_defaultVirtualizedItemText = item.Text;
366379
await SelectedItemChanged(item);
367380
}
368381
}

0 commit comments

Comments
 (0)