我正在使用下面的 openui5 切换按钮,按下时为蓝色,为 true,为 false 时为灰色。但按钮的值会在某个时间点发生变化。是否可以显式调用按钮来重新渲染它。
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"}),
}),
最佳答案
最好将 ToggleButton 的按下属性绑定(bind)到模型中的属性,并让 UI5 的绑定(bind)魔法来处理所有这些事情。如果 UI5 发现模型中的属性发生更改,它将检查该属性的绑定(bind),以查看是否有任何 UI 控件因此需要更新。如果您已将 ToggleButton 绑定(bind)到该属性,UI5 将更新/重新呈现 ToggleButton。
您还可以直接从 Controller 更改 ToggleButton 的“pressed”属性,例如:oToggleButton1.setPressed(false) 也可以解决问题。
关于javascript - 如何在openui5中调用/重新渲染按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34945589/