Example:
<PageTitle>Home</PageTitle>
<div>
<TelerikTextBox Width="20rem" Placeholder="Pallet" DebounceDelay="1000" @bind-Value="@_textInput" OnChange="@(async (input) => await OnInputChanged(input))" />
</div>
<p>@_textInput</p>
@code {
private string? _textInput;
private async Task OnInputChanged(object input)
{
Console.WriteLine($"Immediate: function parameter: {input}, bound variable: {_textInput}");
await Task.Delay(1000);
Console.WriteLine($"Delayed: function parameter: {input}, bound variable: {_textInput}");
//Make the OnChange event receive the immediate value when the DebounceDelay is set
}
}
The DebounceDelay is set to 1 second to highlight the behavior, although we have observed it with delays less than 100 milliseconds when the input is from a barcode scanner and the Enter is part of the scan. Start the sample, type "123" in the input, and hit enter within 1 second.
The output in the console is:
Immediate: function parameter: , bound variable:
Delayed: function parameter: , bound variable: 123
Hi,
I try to make sure that the user don't need to click the TextBox to gain focus and begin typing.
I have only one TextBox on the page, and it's does not atomatically have focus, - nor can I find a property on the component.
Any ideas :-)
/CU
The textbox currently does not use the value attribute for value binding. This translates to a delay in setting the value upon initialization of the component, compared to a standard Blazor InputText.
<AdminEdit>
The same extends to the NumericTextBox
</AdminEdit>