by Guest » 16 Jan 2025, 06:55
Beim Filtern der Dropdown-Liste in der Kombination wird der eingegebene Wert durch die Dropdown-Werte ersetzt, wenn mit den Tasten „Pfeil nach oben“ und „Pfeil nach unten“ navigiert wird. Ich möchte den eingegebenen Wert beibehalten, bis der Benutzer explizit ein Element auswählt.
Wie mache ich das in Blazor?
Ich habe es wie folgt versucht, aber immer noch funktioniert nicht
Code: Select all
private string _typeValue;
public async void KeyPressed(KeyboardEventArgs args)
{
if (args.Key == "ArrowUp" || args.Key == "ArrowDown")
{
if (_comboSelector != null)
{
RestoreTypedValue();
}
else if (args.Key != "Enter")
{
_typedValue = SelectedDataItem?.TextValue ?? string.Empty;
}
}
}
private void RestoreTypedValue()
{
if (!string.IsNullOrEmpty(_typedValue))
{
SelectedDataItem.TextValue = _typedValue;
StateHasChanged();
}
}
public async Task OnFiltering(FilteringEventArgs value)
{
try
{
if (UIElement.IsCd02 == 1)
{
if (value.Text != null && value.Text.Length >= this.MinLengthTerm)
{
_typeValue=value.Text;
await this.ReadCombo(value.Text);
}
else
{
this.DataCollection = this.InitialCollection;
}
}
else
{
if (value.Text != null && value.Text.Length >= 2)
{
value.PreventDefaultAction = true;
var query = new Query().Where(new WhereFilter()
{
Field = "TextValue",
Operator = "contains",
value = value.Text,
IgnoreCase = true
});
query = !string.IsNullOrEmpty(value.Text) ? query : new Query();
_typeValue=value.Text;
await _comboSelector.FilterAsync(DataCollection, query);
}
else
{
this.DataCollection = this.InitialCollection;
}
}
}
catch (Exception e)
{
Console.WriteLine(e.Message);
}
}
Beim Filtern der Dropdown-Liste in der Kombination wird der eingegebene Wert durch die Dropdown-Werte ersetzt, wenn mit den Tasten „Pfeil nach oben“ und „Pfeil nach unten“ navigiert wird. Ich möchte den eingegebenen Wert beibehalten, bis der Benutzer explizit ein Element auswählt.
Wie mache ich das in Blazor?
Ich habe es wie folgt versucht, aber immer noch funktioniert nicht
[code]private string _typeValue;
public async void KeyPressed(KeyboardEventArgs args)
{
if (args.Key == "ArrowUp" || args.Key == "ArrowDown")
{
if (_comboSelector != null)
{
RestoreTypedValue();
}
else if (args.Key != "Enter")
{
_typedValue = SelectedDataItem?.TextValue ?? string.Empty;
}
}
}
private void RestoreTypedValue()
{
if (!string.IsNullOrEmpty(_typedValue))
{
SelectedDataItem.TextValue = _typedValue;
StateHasChanged();
}
}
public async Task OnFiltering(FilteringEventArgs value)
{
try
{
if (UIElement.IsCd02 == 1)
{
if (value.Text != null && value.Text.Length >= this.MinLengthTerm)
{
_typeValue=value.Text;
await this.ReadCombo(value.Text);
}
else
{
this.DataCollection = this.InitialCollection;
}
}
else
{
if (value.Text != null && value.Text.Length >= 2)
{
value.PreventDefaultAction = true;
var query = new Query().Where(new WhereFilter()
{
Field = "TextValue",
Operator = "contains",
value = value.Text,
IgnoreCase = true
});
query = !string.IsNullOrEmpty(value.Text) ? query : new Query();
_typeValue=value.Text;
await _comboSelector.FilterAsync(DataCollection, query);
}
else
{
this.DataCollection = this.InitialCollection;
}
}
}
catch (Exception e)
{
Console.WriteLine(e.Message);
}
}
[/code]