diff --git a/src/BootstrapBlazor.Server/Components/Samples/AutoCompletes.razor b/src/BootstrapBlazor.Server/Components/Samples/AutoCompletes.razor
index 4e42c5a9605..37f11ceba7f 100644
--- a/src/BootstrapBlazor.Server/Components/Samples/AutoCompletes.razor
+++ b/src/BootstrapBlazor.Server/Components/Samples/AutoCompletes.razor
@@ -37,7 +37,7 @@
@((MarkupString)Localizer["ShowLabelDescription"].Value)
-
+
diff --git a/src/BootstrapBlazor/Components/AutoComplete/AutoComplete.razor.cs b/src/BootstrapBlazor/Components/AutoComplete/AutoComplete.razor.cs
index f4586ac4907..82d3f6f2cfd 100644
--- a/src/BootstrapBlazor/Components/AutoComplete/AutoComplete.razor.cs
+++ b/src/BootstrapBlazor/Components/AutoComplete/AutoComplete.razor.cs
@@ -192,6 +192,19 @@ private async Task OnClickItem(string val)
private List Rows => _filterItems ?? [.. Items];
+ ///
+ /// 点击清空按钮时调用此方法 由 Javascript 触发
+ ///
+ ///
+ [JSInvokable]
+ public async Task TriggerClear()
+ {
+ await TriggerFilter("");
+
+ _clientValue = null;
+ CurrentValueAsString = string.Empty;
+ }
+
///
/// TriggerFilter method
///
@@ -228,12 +241,10 @@ public async Task TriggerFilter(string val)
///
///
[JSInvokable]
- public Task TriggerChange(string v)
+ public void TriggerChange(string v)
{
_clientValue = v;
CurrentValueAsString = v;
-
- return Task.CompletedTask;
}
private List GetFilterItemsByValue(string val)
diff --git a/src/BootstrapBlazor/Components/AutoComplete/AutoComplete.razor.js b/src/BootstrapBlazor/Components/AutoComplete/AutoComplete.razor.js
index e222fbcd3a6..ce9c7e8bd61 100644
--- a/src/BootstrapBlazor/Components/AutoComplete/AutoComplete.razor.js
+++ b/src/BootstrapBlazor/Components/AutoComplete/AutoComplete.razor.js
@@ -143,7 +143,7 @@ export function init(id, invoke, value, changedEventCallback) {
EventHandler.on(el, 'click', '.clear-icon', e => {
input.value = '';
- invoke.invokeMethodAsync('TriggerFilter', '');
+ invoke.invokeMethodAsync('TriggerClear');
});
}
diff --git a/test/UnitTest/Components/AutoCompleteTest.cs b/test/UnitTest/Components/AutoCompleteTest.cs
index d21ebce790d..e2971345e30 100644
--- a/test/UnitTest/Components/AutoCompleteTest.cs
+++ b/test/UnitTest/Components/AutoCompleteTest.cs
@@ -196,6 +196,27 @@ public async Task IgnoreCase_Ok()
Assert.Equal(2, menus.Count);
}
+ [Fact]
+ public async Task TriggerClear_Ok()
+ {
+ var val = "task1";
+ var items = new List() { "task1", "Task2" };
+ var cut = Context.RenderComponent(builder =>
+ {
+ builder.Add(a => a.Items, items);
+ builder.Add(a => a.IgnoreCase, false);
+ builder.Add(a => a.Value, val);
+ builder.Add(a => a.IsClearable, true);
+ builder.Add(a => a.ValueChanged, EventCallback.Factory.Create(this, v =>
+ {
+ val = v;
+ }));
+ });
+
+ await cut.InvokeAsync(cut.Instance.TriggerClear);
+ Assert.Empty(val);
+ }
+
[Fact]
public async Task DisplayCount_Ok()
{