2020-09-04 12:05发布
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
消息框在没有用户输入的情况下消失,并移至sap.ui.getCore()。byId(" backBtn")上的上一个屏幕。 请帮助确定问题。
为了进行调试,我建议您应该删除MessageBox.show function()中的代码,并从基本示例开始。
- MessageBox.show("示例文字",{ 图标:MessageBox.Icon.INFORMATION, 标题:"测试", 动作:[sap.m.MessageBox.Action.OK,sap.m.MessageBox.Action.CANCEL], onClose:function(oAction){ if(oAction ===" OK"){ console.log(" in if"); }其他{ console.log(" in else"); } } //您不需要绑定,因为此回调内置在控件中。 });
请在描述您的问题时更加具体。 您的情况是什么? 您编写了什么代码,预期的和实际的输出是什么? 您是否在浏览器控制台中看到任何错误消息?
完成后,将表过滤器逻辑放入其中,最后放入用于MessageBox.show的"字符串"("标题") 。 让我知道,如果上述调试步骤无济于事。 关于sap.m.MessageBox控件的UI5 SDK注释-"创建的对话框是异步执行的。创建并注册渲染对话框后,此函数将返回,而无需等待用户的反应。"
这是函数-
onAfterRendering:函数(){
this.msgStrip = this.getView()。byId(" infoMsgStrip");
this.oViewModel = this._oOwnerComponent.getModel(" viewModel"); this.oViewModel.setProperty("/img/editedColumn",false); this.oViewModel.setProperty("/img/prevSelectedKey",2);
this.oViewModel.setProperty("/img/selectedKey",2);
this.oViewModel.setProperty("/img/skuBtnPress",false);
this.oViewModel.setProperty("/img/styleBtnPress",true);
this.oViewModel.setProperty("/img/enableProp",false); sap.ui.getCore()。byId(" backBtn")。attachPress(this,function(oEvent){
如果(this.getOwnerComponent()){
oEvent.preventDefault();
this.msgStrip.setVisible(false);
var oTable = this.getView()。byId(" displayTable");
var aColumns = oTable.getColumns();
var columnsModel = this._oOwnerComponent.getModel(" ColumnsModel");
var oViewModel = this._oOwnerComponent.getModel(" viewModel");
var数据;
this.oODataFilterModel = this.getOwnerComponent()。getModel(" oODataFilterModel");
data = this.oODataFilterModel.getData()。results.filter(function(item){
返回item.bEdited === true; });
if(data.length){
MessageBox.show(this.i18nModel.getProperty(" Display.controller.navBack"),{
图标:MessageBox.Icon.INFORMATION,
标题:"信息"
操作:[sap.m.MessageBox.Action.OK,sap.m.MessageBox.Action.CANCEL],
onClose:函数(sAction){
if(sAction ===" OK"){
for(var i = 0; i {oTable.filter(aColumns [i],null); } //that.Router.navTo(" appHome"); }}}); }其他{ for(var i = 0; i }。bind(this)); },
{oTable.filter(aColumns [i],null); }
//that.Router.navTo(" appHome"); }}});
}其他{
for(var i = 0; i }。bind(this)); },
}。bind(this));
},
为什么oAction为null-当messageBox显示时,您按OK或Cancel的哪个按钮?您可以执行的另一项测试是将代码移出onAfterRendering方法并尝试 再次。
消息框弹出并消失,并将用户移至上一个屏幕。 如果用户单击"取消",我希望消息框接受响应并停留在屏幕上,并且不希望用户丢失未保存的编辑。
最多设置5个标签!
为了进行调试,我建议您应该删除MessageBox.show function()中的代码,并从基本示例开始。
请在描述您的问题时更加具体。 您的情况是什么? 您编写了什么代码,预期的和实际的输出是什么? 您是否在浏览器控制台中看到任何错误消息?
完成后,将表过滤器逻辑放入其中,最后放入用于MessageBox.show的"字符串"("标题") 。 让我知道,如果上述调试步骤无济于事。 关于sap.m.MessageBox控件的UI5 SDK注释-"创建的对话框是异步执行的。创建并注册渲染对话框后,此函数将返回,而无需等待用户的反应。"
这是函数-
onAfterRendering:函数(){
this.msgStrip = this.getView()。byId(" infoMsgStrip");
this.oViewModel = this._oOwnerComponent.getModel(" viewModel"); this.oViewModel.setProperty("/img/editedColumn",false); this.oViewModel.setProperty("/img/prevSelectedKey",2);
this.oViewModel.setProperty("/img/selectedKey",2);
this.oViewModel.setProperty("/img/skuBtnPress",false);
this.oViewModel.setProperty("/img/styleBtnPress",true);
this.oViewModel.setProperty("/img/enableProp",false); sap.ui.getCore()。byId(" backBtn")。attachPress(this,function(oEvent){
如果(this.getOwnerComponent()){
oEvent.preventDefault();
this.msgStrip.setVisible(false);
var oTable = this.getView()。byId(" displayTable");
var aColumns = oTable.getColumns();
var columnsModel = this._oOwnerComponent.getModel(" ColumnsModel");
var oViewModel = this._oOwnerComponent.getModel(" viewModel");
var数据;
this.oODataFilterModel = this.getOwnerComponent()。getModel(" oODataFilterModel");
data = this.oODataFilterModel.getData()。results.filter(function(item){
返回item.bEdited === true; });
if(data.length){
MessageBox.show(this.i18nModel.getProperty(" Display.controller.navBack"),{
图标:MessageBox.Icon.INFORMATION,
标题:"信息"
操作:[sap.m.MessageBox.Action.OK,sap.m.MessageBox.Action.CANCEL],
onClose:函数(sAction){
if(sAction ===" OK"){
for(var i = 0; i
{oTable.filter(aColumns [i],null); }
//that.Router.navTo(" appHome"); }}});
}其他{
for(var i = 0; i
}。bind(this));
},
为什么oAction为null-当messageBox显示时,您按OK或Cancel的哪个按钮?您可以执行的另一项测试是将代码移出onAfterRendering方法并尝试 再次。
消息框弹出并消失,并将用户移至上一个屏幕。 如果用户单击"取消",我希望消息框接受响应并停留在屏幕上,并且不希望用户丢失未保存的编辑。
一周热门 更多>