Описание
Я создал wasm-приложение Blazor. Там я создал свой собственный InputSelect<string>
компонент, который получает строку идентификаторов (пример: «1,2,3,4,5»). Я анализирую идентификаторы, показываю их, и могу вернуться, а затем преобразовать обратно в строку. Если меню множественного выбора изменилось, я хочу обновить свою переменную selectedServergroups
новыми значениями. Но я только что получил первое выбранное значение в списке. Как я могу получить все выбранные значения?
Источник
@using PhoenixBot.Shared.Instances.Shared
@using PhoenixBot.Client.Helper
@inherits InputSelect<string>
<select class="@CssClass multi-select" @onchange="OnChange" multiple>
@if (Servergroups != null)
{
@foreach (var group in Servergroups)
{
<option value="@Convert.ToInt32(group.Id)" selected="@selectedServergroups.Contains(Convert.ToInt32(group.Id))">@group.Name</option>
}
}
</select>
@code {
[Parameter]
public List<Servergroup> Servergroups { get; set; }
private List<int> selectedServergroups { get; set; }
protected override void OnInitialized()
{
base.OnInitialized();
selectedServergroups = GroupHelper.ParseGroupOfString(CurrentValue);
}
private void OnChange(ChangeEventArgs e)
{
Serilog.Log.Error(e.Value.ToString());
}
protected override bool TryParseValueFromString(string value, out string result, out string validationErrorMessage)
{
result = GroupHelper.ConvertGroupOfList(selectedServergroups);
validationErrorMessage = null;
return true;
}
}
Пример OnChange Logoutput
2020-07-09 08:43:38 [ERR] 75
2020-07-09 08:43:40 [ERR] 74
2020-07-09 08:43:41 [ERR] 73
2020-07-09 08:43:43 [ERR] 73
2020-07-09 08:43:45 [ERR] 73