Нет
0 Баллов
1 Пост
[Flags] Enum - компонент MultiSelect Blazor 49 минут назад | LINK | 188.23.119.141
I Я работаю над веб-приложением Blazor на стороне сервера, которое в основном о пациентах, которые могут заполнить несколько вопросников об их болезни. Эти данные хранятся в базе данных через EF Core. Моя проблема в том, что во многих вопросниках есть поле, в котором пользователь может указать несколько опций, мультиэлемент, с базовым типом данных Enum [Flags] (я полагал, что перечисление будет проще, чем отдельный класс для каждого поля):
[Flags]
public enum PainSite
{
BehindBothEyes = 1,
... // 12 options in total
}
При использовании встроенного тега InputSelect мне удалось указать только ОДНУ опцию, поскольку она не допускает атрибут «несколько». Связывание с одним параметром enum сработало, но мне нужно, чтобы вход был множественным! (независимо от того, выпадающий или список). Таким образом, я попробовал следующее, что позволяет мне фактически выбрать несколько значений, но только одно фактически связано и, следовательно, хранится в базе данных.
<select multiple class="form-control" @bind="@PostOp.PainStart">
@foreach (var painSite in Enum.GetValues(typeof(PainSite)))
{
<option value="@painSite">@painSite</option>
}
</select>
[Parameter] public int Id { get; set; }
[Parameter] public EventCallback<PostOpQuestionaire> OnValidSubmit { get; set; }
public PostOpQuestionaire PostOp { get; set; } = new PostOpQuestionaire();
protected override async Task OnInitializedAsync()
{
try
{
Patient patient = await patientDataService.GetPatientById(Id);
PostOp = patient.PostOp;
}
catch
{
PostOp = new PostOpQuestionaire();
}
}
Есть ли у вас какие-либо идеи о том, как использовать перечисление [flags] в качестве базового типа для компонента множественного выбора в Blazor?