SAPUI5 - Как получить индекс выбранной кнопки RadioGroupButton - PullRequest
0 голосов
/ 12 апреля 2020

Я новичок в SAPUI5 и пытаюсь получить индекс выбранной кнопки для RadioGroupButton в SAPUI5 .

Причина этого в том, чтобы скрыть или показать больше вопросов опроса. И форма основана на двух языках, поэтому было бы лучше получить индекс, а не текст selectedButton.

Вот мой код для XML и контроллера. Любая помощь приветствуется, поскольку я не знаю, почему она не распознает индекс кнопки в консоли и показывает, что она не определена!

XML

<VBox class="sapUiMediumMargin">
                        <VBox id="Q1">
                            <Label labelFor="rgb1" text="{i18n>Q1}" />
                            <RadioButtonGroup id="rbg1" columns="2" width="100%">
                                <RadioButton id="RB1-1" text="{i18n>radio.button.no}" select="onSelect"/>
                                <RadioButton id="RB1-2" text="{i18n>radio.button.yes}" select="onSelect"/>
                            </RadioButtonGroup>
                            <!--Small Margin-->
                            <HBox class="sapUiSmallMargin"/>
                        </VBox>

Контроллер


sap.ui.define([
    "sap/ui/core/mvc/Controller",
    "sap/ui/core/Element",
    "sap/m/MessageToast"
], function(Controller, Element, MessageToast) {
    "use strict";

    return Controller.extend("aaaa.comform.controller.view1", {

        onSelect: function() {

            var oRBGroup = this.getView().byId("rbg1");
            var oButtonSelectedIndex = oRBGroup.getSelectedButtonIndex();
            var oVBox1 = this.getView().byId("Q2"); // another Hidden question to be shown if answer is Yes



            if (oButtonSelectedIndex === 1)) {  // 1 means answer is Yes

                oVBox1.setVisible(true);
                // console.log(getSelctedButton);
            } else {
                oVBox1.setVisible(false);
            }
        }

    });
});

1 Ответ

0 голосов
/ 12 апреля 2020

Когда выбрано событие select, ваш обработчик будет вызван с объектом Event. Вы можете прочитать, какие параметры доступны для события select здесь - https://sapui5.hana.ondemand.com/# / api / sap.m.RadioButtonGroup% 23events / select . Вы можете использовать параметр selectedIndex.

Сначала в представлении XML переместите слушателя в RadioButtonGroup. Это избавит от необходимости добавлять слушателя для каждой кнопки RadioButton в этой группе.

XML

<RadioButtonGroup id="rbg1" columns="2" width="100%" select="onSelect">

Контроллер

onSelect: function (oEvent) {
  var iIndex = oEvent.gatParameter("selectedIndex"),
      oGroup = oEvent.getSource();

  if (iIndex === 1) {
    ...
  } else {
    ...
  }     
}
...