#c# #razor #blazor
#c# #razor #blazor
Вопрос:
У меня есть <select>
элемент управления на моей странице блейзора с 3 вариантами. Я устанавливаю selected
опцию «Нести». Если пользователь не прикасается к <select>
элементу управления, я хочу, чтобы привязанное значение было равно «Bear».
Однако я замечаю, что оно обновляет привязанное значение только к тому, что я выбираю, ПОСЛЕ обновления элемента <select>
управления. Как мне заставить его принимать selected
значение, когда <select>
компонент никогда не затрагивается?
<select @bind="selectedValue">
<option value="Apple">Apple</option>
<option selected="selected" value="Bear">Bear</option>
<option value="John Cena">John Cena</option>
</select>
<h3>Selected Value: @selectedValue</h3>
@code {
string selectedValue;
}
В настоящее время существует скрипка Блейзора: https://blazorfiddle.com/s/d3flx9tc
Ответ №1:
Просто присвойте значение «Bear» selectedValue
, как показано ниже:
string selectedValue = "Bear";
И удалите атрибут selected="selected"
Теперь выбрано «Bear», а переменная selectedValue
содержит строку «Bear». Вот как вы должны инициализировать свои элементы.
Кстати, вы должны использовать только selected
without ="selected"
. Это бессмысленно. Вы могли бы использовать selected="DoNotSelectMe"
, и это все равно будет работать
Комментарии:
1. Это надуманный пример для моего реального проекта. В моем проекте у меня есть список элементов
<select>
управления, которые по умолчанию имеют различные значения в зависимости от других значений. Таким образом, у вас может быть 3 выбора, которые по умолчанию равны «bear», и 2, которые по умолчанию равны «apple», и 5, которые по умолчанию равны «john cena». Я создаю этиselect
элементы управления в цикле. Думаю, я мог бы задать значение по умолчанию, как вы сказали, но я надеялся, что смогу сохранить этот код и просто попроситьselected
свойство сделать это за меня во время рендеринга пользовательского интерфейса. Похоже, мне нужно перевернуть мою логику.2. Отлично. Вы задали вопрос… Я ответил на это. Нет проблем. Создайте новый вопрос, покажите, что вы сделали, и мы постараемся помочь.
3. Я инициализировал элемент, как вы предложили, и
selected
полностью удалил атрибут. Я не понимал, чтоselected
это не нужно, когда переменная, привязанная кselect
уже имеет значение. Это работает отлично, и код намного чище. Спасибо за вашу помощь.