Как сохранить опцию "Выбрать один" в калитке DropDownChoice?
Когда я впервые загружаю страницу, опцией по умолчанию в выпадающем списке является "Выбрать одну". Есть ли способ сохранить его в выпадающем списке, даже если я выбрал вариант?
(На случай, если я не хочу ничего ставить позже)
2 ответа
Вам нужно использовать DropDownChoice.setNullValid()
метод. Из Javadoc:
Определяет, следует ли включать нулевое значение в список вариантов выбора, если значение модели поля не равно нулю, и следует ли отображать строковое свойство null_valid (например, "Выбрать один") до тех пор, пока не будет выбрано ненулевое значение. Если установлено значение false, то "Выбрать один" будет отображаться, когда значение равно нулю. После того, как значение выбрано, и это изменение распространяется на базовую модель, пользователь больше не будет видеть опцию "Выбрать один", и не будет никакого способа повторно выбрать нуль в качестве значения. Если установлено значение true, свойство пустой строки (пустая строка по умолчанию) всегда будет отображаться как опция независимо от того, было ли выбрано ненулевое значение или нет. Обратите внимание, что этот параметр не влияет на проверку; чтобы гарантировать, что значение будет указано при проверке формы, FormComponent.setRequired(логическое). Это потому, что даже если setNullValid() вызывается с false, пользователь может не предоставить значение просто, никогда не активируя (т.е. щелкая по) компонент.
Если вы хотите оставить текст "Выбрать один" с NullValid = true, вы можете использовать строку, аналогичную следующей в файле Application.properties:
nullValid=[Choose one]
В.java:
DropDownChoice<Boolean> myDropDown = new DropDownChoice<>(
"myDropDownWicketId", model, Arrays.asList(true, false), renderer);
myDropDown.setNullValid(true);
В файл.properties, связанный с классом Java добавить:
myDropDownWicketId.nullValid=Choose One
myDropDownWicketId.true=Yes
myDropDownWicketId.false=No