我使用下面的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"}),
}),
答案 0 :(得分:0)
最好将ToggleButton的按下属性绑定到模型中的属性,让UI5的绑定魔法处理所有这些。如果UI5发现模型中的属性发生更改,它将检查该属性的绑定,以查看是否有任何UI控件需要更新。如果您已将ToggleButton绑定到该属性,UI5将更新/重新呈现ToggleButton。
您也可以更改"按下"直接来自你的控制器的ToggleButton的属性,例如:oToggleButton1.setPressed(false)也应该这样做。
答案 1 :(得分:0)
我真的不明白你想要实现的目标,也许你可以再详细说明一下,即什么价值变化以及何时变化?无论如何...... jpenninkhof绝对是他所说的一切。但是,由于你明确地要求如何重新按下按钮,这就是答案:
oToggleButton1.rerender();
这将重新呈现按钮(当然基于其属性......)。
但是,请致电
oToggleButton1.setPressed(false);
或
oToggleButton1.setPressed(true);
如果已按下的属性的值已更改,将自动重新呈现按钮。