如何在openui5中调用/重新呈现按钮

时间:2016-01-22 11:23:38

标签: javascript jquery html sapui5

我使用下面的openui5切换按钮,按下时为蓝色,为真时为蓝色,为假时为灰色。但是按钮的值会在某个时间点发生变化。是否可以显式调用按钮来重新呈现它。

 var   oToggleButton1 = new sap.ui.commons.ToggleButton({
                                    text : "Auto-Update",
                                    tooltip : "Update toggle.",
                                    pressed : true,
                                    press : function() {

                                        if(oToggleButton1.getPressed() == true){
                                            buttonStatus = "ON";
                                        }
                                        else{
                                            buttonStatus = "OFF";
                                        }                                                           
                                        var oDialog1 = new sap.ui.commons.Dialog();
                                        oDialog1.setTitle("Alert!");    
                                        //alert('Auto update is turned '+buttonStatus);
                                        oDialog1.addContent(new sap.ui.commons.TextView({text: "Auto update is turned "+buttonStatus}));
                                        //oDialog1.addButton(new sap.ui.commons.Button({text: "OK", press:function(){oDialog1.close();}}));
                                        oDialog1.open();
                                        oDialog1.close();
                                        refreshButtonDisplay=oToggleButton1.getPressed();
                                    },
                                    layoutData: new sap.ui.layout.GridData({span: "L12 M12 S12"}),
                                  }),

2 个答案:

答案 0 :(得分:0)

最好将ToggleButton的按下属性绑定到模型中的属性,让UI5的绑定魔法处理所有这些。如果UI5发现模型中的属性发生更改,它将检查该属性的绑定,以查看是否有任何UI控件需要更新。如果您已将ToggleButton绑定到该属性,UI5将更新/重新呈现ToggleButton。

您也可以更改"按下"直接来自你的控制器的ToggleButton的属性,例如:oToggleButton1.setPressed(false)也应该这样做。

答案 1 :(得分:0)

我真的不明白你想要实现的目标,也许你可以再详细说明一下,即什么价值变化以及何时变化?无论如何...... jpenninkhof绝对是他所说的一切。但是,由于你明确地要求如何重新按下按钮,这就是答案:

oToggleButton1.rerender();

这将重新呈现按钮(当然基于其属性......)。

但是,请致电

oToggleButton1.setPressed(false);

oToggleButton1.setPressed(true);
如果已按下的属性的值已更改,

将自动重新呈现按钮。