Javascript Sapui5 ODATA忙指示灯对话框don';不显示
我的代码有一个问题,当我点击“保存”时,我需要显示一个繁忙的对话框,但它没有显示我不知道为什么,我搜索了5天,没有任何帮助,我尝试了异步发布,延迟调用和其他事情,使这项工作 当我点击按钮“Guardar”时,在图像上,之后我需要在与服务器的通信开始时显示一个繁忙的对话框,我拥有的代码是下一个:Javascript Sapui5 ODATA忙指示灯对话框don';不显示,javascript,jquery,odata,sapui5,Javascript,Jquery,Odata,Sapui5,我的代码有一个问题,当我点击“保存”时,我需要显示一个繁忙的对话框,但它没有显示我不知道为什么,我搜索了5天,没有任何帮助,我尝试了异步发布,延迟调用和其他事情,使这项工作 当我点击按钮“Guardar”时,在图像上,之后我需要在与服务器的通信开始时显示一个繁忙的对话框,我拥有的代码是下一个: onSaveRaw: function(oEvent) { var that = this; var ILgort = this.byId("sAlmacen_id")
onSaveRaw: function(oEvent) {
var that = this;
var ILgort = this.byId("sAlmacen_id").getValue();
var IWerks = this.byId("sCentro_id").getValue();
var IFechaoper = this.byId("sDate_id").getValue();
var RecTemm = this.byId("sTemm_id").getValue();
var RecTemt = this.byId("sTemt_id").getValue();
var RecDeno = this.byId("sDeno_id").getValue();
var RecPorc = this.byId("sPorc_id").getValue();
var RecPres = this.byId("sPres_id").getValue();
var RecHume = this.getView().byId("_select0").getSelectedKey();
var RecAgua = this.getView().byId("_select1").getSelectedKey();
if (this.validarCampoRequerido(ILgort)) {
return;
}
if (this.validarCampoRequerido(IWerks)) {
return;
}
if (this.validarCampoRequerido(IFechaoper)) {
return;
}
if (this.validarCampoRequerido(RecTemm)) {
return;
}
if (this.validarCampoRequerido(RecTemt)) {
return;
}
if (this.validarCampoRequerido(RecDeno)) {
return;
}
if (this.validarCampoRequerido(RecPorc)) {
return;
}
if (this.validarCampoRequerido(RecPres)) {
return;
}
//Creación del catalogo de datos del formulario.
var dialog = new sap.m.Dialog({
title: "Confirmación",
type: "Message",
state: "Warning",
content: new sap.m.Text({
text: "Se generará el documento de inventario. ¿Desea continuar?"
}),
beginButton: new sap.m.Button({
text: "Guardar",
press: function() {
var oData = {
"ILgort": ILgort,
"IWerks": IWerks,
"IFechainv": IFechaoper,
"ICharact010": RecTemm,
"ICharact020": RecTemt,
"ICharact030": RecDeno,
"ICharact040": RecPorc,
"ICharact050": RecPres,
"ICharact080": RecHume,
"ICharact090": RecAgua
};
//console.log(oData);var _this = this;
//Se crea instancia del servicio
var oModel = new sap.ui.model.odata.ODataModel("/sap/opu/odata/sap/XXXXXXXXX/");
var oGlobalBusyDialog = new sap.m.BusyDialog();
oGlobalBusyDialog.open();
oModel.create("/LECTURATANQUESet", oData, null, function(oResponse) {
sap.m.MessageBox.alert(oResponse.Message, {
title: "Exito",
textDirection: sap.ui.core.TextDirection.Inherit,
onClose: function() {
that.onRefresh();
that._navBack();
}
});
}, function(oError) {
var oNum = oError.response.statusCode;
if (oNum == "500") {
sap.m.MessageBox.alert("Error, Sesión Finalizada por tiempo de Conexión.", {
title: "Error",
textDirection: sap.ui.core.TextDirection.Inherit,
onClose: function() {}
});
} else if (oNum == "504") {
sap.m.MessageBox.alert("Error de gateway, vuelva a intentar por favor.", {
title: "Error",
textDirection: sap.ui.core.TextDirection.Inherit,
onClose: function() {}
});
} else {
var oMsg = $(oError.response.body).find("message").first().text();
sap.m.MessageBox.alert(oMsg, {
title: "Error",
textDirection: sap.ui.core.TextDirection.Inherit,
onClose: function() {}
});
}
});
oGlobalBusyDialog.close();
dialog.close();
}
}),
endButton: new sap.m.Button({
text: "Cancelar",
press: function() {
dialog.close();
}
}),
afterClose: function() {
}
});
dialog.open();
}
如果有人能给我任何提示,我将非常感激。你需要调用
oGlobalBusyDialog.close()代码>在create
函数的成功和错误回调中。因此,当create
功能完成时(成功或错误),您将关闭忙碌对话框
此外,还必须删除oGlobalBusyDialog.close()在的最后第二行中,按
事件处理程序
编辑(重新阅读文档后更新如何使用创建
)
像这样使用create
oModel.create("/LECTURATANQUESet",
oData, {
success: successCallback,
error: errorCallbak
}
)
您使用了错误的总线指示器。试试这个:
sap.ui.define([
"sap/ui/core/BusyIndicator"
],
function (BusyIndicator) {
BusyIndicator.show();
//...
BusyIndicator.hide();
});
我要试试!:)另外,根据,创建函数将成功回调作为第5个参数,错误作为第6个参数。你能不能改变一下,也试一下?试着改变一下方法?怎么做?谢谢你的例子,我现在就试试这个,如果有效,我会回复你:)好吧,不起作用,是一样的,它会保持冻结,稍后不会显示消息对话框,显示成功或错误…:/试试这个“this.getView().setBusy(true).setBusyIndicatorDelay(0)”。希望它对您有效如果您这样做,指示器将显示并立即隐藏。对hide()
的调用必须在异步回调中进行。@Marc绝对,这对我来说很明显,这就是为什么我只是简化了使用示例。。。然后我还要补充一点,当发生任何异步错误时,BusyIndicator应该隐藏,否则它会锁定整个页面他的hide
不在回调中。@Sarco哦,您使用的是哪个版本的sapui5?1.28.44,那个版本。