diff --git a/src/BootstrapBlazor/Components/AutoComplete/AutoComplete.razor.cs b/src/BootstrapBlazor/Components/AutoComplete/AutoComplete.razor.cs
index fd9784285cf..e8f836b7d0b 100644
--- a/src/BootstrapBlazor/Components/AutoComplete/AutoComplete.razor.cs
+++ b/src/BootstrapBlazor/Components/AutoComplete/AutoComplete.razor.cs
@@ -12,12 +12,6 @@ namespace BootstrapBlazor.Components;
///
public partial class AutoComplete
{
- ///
- /// Gets the component style
- ///
- private string? ClassString => CssBuilder.Default("auto-complete")
- .Build();
-
///
/// Gets or sets the collection of matching data obtained by inputting a string
///
@@ -179,14 +173,26 @@ public override async Task TriggerFilter(string val)
[JSInvokable]
public override Task TriggerChange(string val)
{
+ // client input does not need to be re-rendered to prevent jitter when the network is congested
_render = false;
+ CurrentValue = val;
+ _render = true;
+ _dropdown.Render();
+ return Task.CompletedTask;
+ }
+
+ ///
+ /// TriggerChange method
+ ///
+ ///
+ [JSInvokable]
+ public Task TriggerDeleteCallback(string val)
+ {
CurrentValue = val;
if (!ValueChanged.HasDelegate)
{
StateHasChanged();
}
- _render = true;
- _dropdown.Render();
return Task.CompletedTask;
}
}
diff --git a/src/BootstrapBlazor/Components/AutoComplete/AutoComplete.razor.js b/src/BootstrapBlazor/Components/AutoComplete/AutoComplete.razor.js
index 1300fdd8b0d..a917c780048 100644
--- a/src/BootstrapBlazor/Components/AutoComplete/AutoComplete.razor.js
+++ b/src/BootstrapBlazor/Components/AutoComplete/AutoComplete.razor.js
@@ -157,6 +157,11 @@ const handlerKeyup = (ac, e) => {
current.classList.add('active');
scrollIntoView(el, current);
}
+ else if (key === 'Backspace' || key === 'Delete') {
+ if (input.getAttribute('data-bb-trigger-delete') === 'true') {
+ invoke.invokeMethodAsync('TriggerDeleteCallback', input.value);
+ }
+ }
}
export function showList(id) {
diff --git a/test/UnitTest/Components/AutoCompleteTest.cs b/test/UnitTest/Components/AutoCompleteTest.cs
index 37e7f7089e3..821b5f79eb5 100644
--- a/test/UnitTest/Components/AutoCompleteTest.cs
+++ b/test/UnitTest/Components/AutoCompleteTest.cs
@@ -3,14 +3,12 @@
// See the LICENSE file in the project root for more information.
// Maintainer: Argo Zhang(argo@live.ca) Website: https://www.blazor.zone
-using Microsoft.AspNetCore.Components.Web;
-
namespace UnitTest.Components;
public class AutoCompleteTest : BootstrapBlazorTestBase
{
[Fact]
- public void Items_Ok()
+ public async Task Items_Ok()
{
var cut = Context.RenderComponent
(pb =>
{
@@ -18,6 +16,8 @@ public void Items_Ok()
pb.Add(a => a.IsSelectAllTextOnEnter, true);
});
Assert.Contains(" cut.Instance.TriggerDeleteCallback("Test"));
+ Assert.Equal("Test", cut.Instance.Value);
}
[Fact]