Skip to content

Commit 25ba1e9

Browse files
committed
fix: 修复虚拟数据无法切换数据问题
1 parent c673833 commit 25ba1e9

File tree

1 file changed

+10
-9
lines changed

1 file changed

+10
-9
lines changed

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

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -264,7 +264,7 @@ private SelectedItem? SelectedRow
264264
var item = Rows.Find(i => i.Value == CurrentValueAsString)
265265
?? Rows.Find(i => i.Active)
266266
?? Rows.Where(i => !i.IsDisabled).FirstOrDefault()
267-
?? GetVirtualizeItem();
267+
?? GetVirtualizeItem(CurrentValueAsString);
268268

269269
if (item != null)
270270
{
@@ -376,22 +376,23 @@ protected override bool TryParseValueFromString(string value, [MaybeNullWhen(fal
376376

377377
private bool TryParseSelectItem(string value, [MaybeNullWhen(false)] out TValue result, out string? validationErrorMessage)
378378
{
379-
SelectedItem = Items.FirstOrDefault(i => i.Value == value)
380-
?? GetVirtualizeItem();
379+
SelectedItem = Rows.FirstOrDefault(i => i.Value == value)
380+
?? GetVirtualizeItem(value);
381381

382382
// support SelectedItem? type
383383
result = SelectedItem != null ? (TValue)(object)SelectedItem : default;
384384
validationErrorMessage = "";
385385
return SelectedItem != null;
386386
}
387387

388-
private SelectedItem? GetVirtualizeItem()
388+
private SelectedItem? GetVirtualizeItem(string value)
389389
{
390-
return OnQueryAsync == null ? null : GetSelectedItem();
391-
392-
SelectedItem? GetSelectedItem() => ValueType == typeof(SelectedItem)
393-
? (SelectedItem)(object)Value
394-
: new SelectedItem(CurrentValueAsString, DefaultVirtualizeItemText ?? CurrentValueAsString);
390+
SelectedItem? item = null;
391+
if (_result.Items != null)
392+
{
393+
item = _result.Items.FirstOrDefault(i => i.Value == value);
394+
}
395+
return item ?? new SelectedItem(value, DefaultVirtualizeItemText ?? value);
395396
}
396397

397398
/// <summary>

0 commit comments

Comments
 (0)