Как проверить и перейти к sap.m.RadioButtonGroup

#sapui5

#sapui5

Вопрос:

Задача проста:
пользователь должен выбрать запись в группе переключателей, в противном случае проверка завершится неудачей.
RadioButtonGroup
Чтобы быть приятным для пользователя, я также хотел бы перейти к этой RadioButtonGroup, когда ее проверка завершается неудачей, поскольку она находится дальше и может отсутствовать в поле зрения (как в моем примере, приведенном ниже).

Реализация не так проста для меня, потому что RadioButtonGroup не обладает свойством required .
Вот мой пример кода — RadioButtonGroup находится в файле SomeView.view.xml в строке 420…
Я пока ничего не пробовал, потому что понятия не имею, что попробовать.

Кто-нибудь знает, возможно ли это без ущерба для существующей реализации валидатора (которую я получил отсюда)?

Ответ №1:

Реализация не так проста для меня, потому что RadioButtonGroup не обладает требуемым свойством.

sap.m.Label Требуется только свойство required="true" . Не сам элемент управления sap.m.RadioButtonGroup .

Элемент управления sap.m.RadioButtonGroup имеет свойство, вызываемое selectedIndex . В вашем фрагменте кода вы устанавливаете свойство selectedIndex="-1" . Если пользователь выберет, sap.m.Radiobutton selectedIndex значение изменится на 0 .. 3. Давайте зафиксируем это с помощью sap.ui.model.type.Integer .

  // JSON dummy data
            var oData = {
                text   : "Test",
                userEmail : "i.am@groot.com",
                number : 50,
                date   : "01.01.2021",
                selectedIndex: -1
            };
  
  <Label text="Final answer?" required="true"/>
            <RadioButtonGroup 
               id="answer" 
               columns="4" 
               selectedIndex="{ path: '/selectedIndex',
               type: 'sap.ui.model.type.Integer',
               constraints : { 
                              minimum : 0, 
                              maximum : 3 
                             }}">
                <RadioButton id="A1" text="A"/>
                <RadioButton id="B1" text="B"/>
                <RadioButton id="C1" text="C"/>
                <RadioButton id="D1" text="D"/>
            </RadioButtonGroup>
  

Validator.js Проверяет только следующие свойства

  aValidateProperties   = ["value", "selectedKey", "text"] 
  

итак, мы добавляем свойство selectedIndex

 aValidateProperties   = ["value", "selectedKey", "text", "selectedIndex"]
  

Проверка теперь работает! Пример кода

Чтобы быть приятным для пользователя, я также хотел бы перейти к этой RadioButtonGroup, когда ее проверка завершается неудачей, поскольку она находится дальше и может отсутствовать в поле зрения (как в моем примере, приведенном ниже).

Смотрите этот официальный пример

Комментарии:

1. это лучший ответ, который я видел за последнее время, хорошо объясненный и даже с полностью рабочими примерами, большое вам спасибо! Сначала у меня не получилось, потому что я случайно установил selectedIndex в строку в своем файле json — "selectedIndex":"-1" — но после исправления это сработало.