Skip to content

Commit 73b6de1

Browse files
committed
Revert "feat(Select): use DynamicElement ensure release event callback (#7894)"
This reverts commit c2dcc2e.
1 parent f559e9e commit 73b6de1

2 files changed

Lines changed: 5 additions & 29 deletions

File tree

src/BootstrapBlazor/Components/Select/Select.razor

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
@namespace BootstrapBlazor.Components
1+
@namespace BootstrapBlazor.Components
22
@using Microsoft.AspNetCore.Components.Web.Virtualization
33
@typeparam TValue
44
@inherits SimpleSelectBase<TValue>
@@ -22,8 +22,7 @@
2222
}
2323
else
2424
{
25-
<input type="text" id="@InputId" disabled="@Disabled" placeholder="@PlaceHolder" class="@InputClassString"
26-
value="@SelectedRow?.Text" @onchange="@_onChangeEventCallback" readonly="@ReadonlyString" />
25+
<input type="text" id="@InputId" disabled="@Disabled" placeholder="@PlaceHolder" class="@InputClassString" value="@SelectedRow?.Text" @onchange="OnChange" readonly="@ReadonlyString" />
2726
}
2827
<span class="@AppendClassString"><i class="@DropdownIcon"></i></span>
2928
</div>
@@ -93,7 +92,7 @@
9392

9493
@code {
9594
RenderFragment<SelectedItem> RenderRow => item =>
96-
@<DynamicElement class="@ActiveItem(item)" OnClick="() => OnClickItem(item)">
95+
@<div class="@ActiveItem(item)" @onclick="() => OnClickItem(item)">
9796
@if (ItemTemplate != null)
9897
{
9998
@ItemTemplate(item)
@@ -106,7 +105,7 @@
106105
{
107106
@item.Text
108107
}
109-
</DynamicElement>;
108+
</div>;
110109

111110
RenderFragment<PlaceholderContext> RenderPlaceHolderRow => context =>
112111
@<div class="dropdown-item">

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

Lines changed: 1 addition & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -202,8 +202,6 @@ public bool IsUseActiveWhenValueIsNull
202202

203203
private string _defaultVirtualizedItemText = "";
204204

205-
private EventCallback<ChangeEventArgs> _onChangeEventCallback = EventCallback<ChangeEventArgs>.Empty;
206-
207205
private SelectedItem? SelectedItem { get; set; }
208206

209207
private SelectedItem? SelectedRow
@@ -236,10 +234,6 @@ protected override void OnParametersSet()
236234
NoSearchDataText ??= Localizer[nameof(NoSearchDataText)];
237235
DropdownIcon ??= IconTheme.GetIconByKey(ComponentIcons.SelectDropdownIcon);
238236
ClearIcon ??= IconTheme.GetIconByKey(ComponentIcons.SelectClearIcon);
239-
240-
_onChangeEventCallback = IsEditable
241-
? EventCallback.Factory.Create<ChangeEventArgs>(this, OnChange)
242-
: EventCallback<ChangeEventArgs>.Empty;
243237
}
244238

245239
/// <summary>
@@ -395,8 +389,6 @@ private async Task OnClickItem(SelectedItem item)
395389
_defaultVirtualizedItemText = item.Text;
396390
await SelectedItemChanged(item);
397391
}
398-
399-
StateHasChanged();
400392
}
401393

402394
private async Task SelectedItemChanged(SelectedItem item)
@@ -502,26 +494,11 @@ private async Task OnChange(ChangeEventArgs args)
502494
// 修复:使用完整的未过滤列表来查找当前选中项
503495
// 避免在用户搜索时被外部 StateHasChanged 影响导致值被错误修改
504496
var allItems = GetRowsByItems();
505-
497+
506498
var item = GetItemWithEnumValue()
507499
?? allItems.Find(i => i.Value == CurrentValueAsString)
508500
?? allItems.Find(i => i.Active)
509501
?? allItems.Find(i => !i.IsDisabled);
510502
return item;
511503
}
512-
513-
/// <summary>
514-
/// <inheritdoc/>
515-
/// </summary>
516-
/// <param name="disposing"></param>
517-
/// <returns></returns>
518-
protected override ValueTask DisposeAsync(bool disposing)
519-
{
520-
if (disposing)
521-
{
522-
_onChangeEventCallback = EventCallback<ChangeEventArgs>.Empty;
523-
}
524-
525-
return base.DisposeAsync(disposing);
526-
}
527504
}

0 commit comments

Comments
 (0)