SAPUi5单选按钮选定文本

问题描述 投票:0回答:2

我的XMLview中有一个单选按钮,如下所示。数据受模型约束。我的要求是在数据绑定后验证单选按钮。下面是我的控制器代码。我试图在我的控制器AfterRendering方法中读取selectedButton文本的值。

XML w:

<RadioButtonGroup id="rbgtype" > 
<RadioButton text="Yes" selected="{/rbgtype}"/> 
<RadioButton text="No" selected="{=!${/rbgtype}}"/> </RadioButtonGroup>

调节器

onAfterRendering: function () { 
var that = this; console.log("rbgtype"+that.getView().byId("rbgtype").getSelectedButton().getText());} 

奇怪的是,无论选择什么值,我总是得到“是”的值。有人可以告诉我在哪里做错了。

javascript sapui5
2个回答
4
投票

这样做是因为RadioButtonGroup最初没有属性集selectedIndex。当getSelectedButton未设置时,它似乎未通过selectedIndex方法。

也许你可以像这样解决这个问题?希望这可以帮助。

视图

        <RadioButtonGroup id="rbgtype" selectedIndex ="{/rbgtype}">
            <RadioButton text="Yes" />
            <RadioButton text="No"/>
        </RadioButtonGroup>

调节器

        onInit: function() {
        var type = false;
        var oModel = new JSONModel({
            rbgtype: type ? 0 : 1
        });

        this.getView().setModel(oModel);
    },

    onAfterRendering: function() {
        sap.m.MessageToast.show("rbgtype: " + this.byId("rbgtype").getSelectedButton().getText());
    },

视图2

<RadioButtonGroup id="rbgtype" selectedIndex ="{= ${rbgtype} ? 0 : 1 }">
            <RadioButton text="Yes" />
            <RadioButton text="No"/>
</RadioButtonGroup>

1
投票

请检查您的xml视图radionbuttongroup聚合和绑定

<RadioButtonGroup id="rbgtype" >
                <buttons>


<RadioButton text="Yes" selected="{/rbgtype}"/> 
<RadioButton text="No" selected="{=!${/rbgtype}}"/> </RadioButtonGroup>
                </buttons>
            </RadioButtonGroup>

一旦修复它,就可以在控制器的onInit函数中为onAfterRendering添加一个事件委托

见下面的例子

var rbGrp= this.getView().byId("rbgtype");

rbGrp.addEventDelegate({

onAfterRendering:function(){/*write your code here*/}                                                        

      }, this);

希望这可以帮助。任何问题让我知道

© www.soinside.com 2019 - 2024. All rights reserved.