SAPUI5动态绑定上载集合中的数据

2020-09-21 03:53发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


专家们,
我遇到了一个有趣的问题,我无法解决这个问题。

我有一个sap.ui.table.Table,它是通过JSON数据绑定动态创建的。 一切正常,直到我在每个数据行上都需要一个按钮,并且当用户单击该按钮时,会打开一个对话框,其中包含一个与之动态绑定的UploadCollectionItems的Upload Collection。 我尝试了几种方法来做,但我不知道。

这是我的代码

 oTable.addColumn(新sap.ui.table.Column({
     标签:new sap.m.Label({text:""}),
     模板:新sap.m.Button({
      图标:" sap-icon://attachment",
      按下:function(oEvent){
       var oDialog = new sap.m.Dialog({
          标题:"文件管理器",
          图标:" sap-icon://attachment",
          内容:
          新的sap.m.UploadCollection({
           项目:{
              路径:oEvent.getSource()。getBindingContext()。getPath()+"/img/documents",
              模板:new sap.m.UploadCollectionItem({fileName:" {filename}"}),
              templateShareable:true
             }
          })
       });
       oDialog.open();
      }
     })
 }));
 


要解释:

oEvent.getSource()。getBindingContext()。getPath()+"/img/documents"

如果执行以下操作,这是该行的路径:

var oPath = oEvent.getSource()。getBindingContext()。getPath()+"/img/documents";
var oFiles = oModel.getProperty(oPath);

所以oFiles数组包含item.filename确实存在的项目

我想念什么吗?

非常感谢您的帮助!

米洛斯拉夫

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


专家们,
我遇到了一个有趣的问题,我无法解决这个问题。

我有一个sap.ui.table.Table,它是通过JSON数据绑定动态创建的。 一切正常,直到我在每个数据行上都需要一个按钮,并且当用户单击该按钮时,会打开一个对话框,其中包含一个与之动态绑定的UploadCollectionItems的Upload Collection。 我尝试了几种方法来做,但我不知道。

这是我的代码

 oTable.addColumn(新sap.ui.table.Column({
     标签:new sap.m.Label({text:""}),
     模板:新sap.m.Button({
      图标:" sap-icon://attachment",
      按下:function(oEvent){
       var oDialog = new sap.m.Dialog({
          标题:"文件管理器",
          图标:" sap-icon://attachment",
          内容:
          新的sap.m.UploadCollection({
           项目:{
              路径:oEvent.getSource()。getBindingContext()。getPath()+"/img/documents",
              模板:new sap.m.UploadCollectionItem({fileName:" {filename}"}),
              templateShareable:true
             }
          })
       });
       oDialog.open();
      }
     })
 }));
 


要解释:

oEvent.getSource()。getBindingContext()。getPath()+"/img/documents"

如果执行以下操作,这是该行的路径:

var oPath = oEvent.getSource()。getBindingContext()。getPath()+"/img/documents";
var oFiles = oModel.getProperty(oPath);

所以oFiles数组包含item.filename确实存在的项目

我想念什么吗?

非常感谢您的帮助!

米洛斯拉夫

付费偷看设置
发送
6条回答
四川大学会员
1楼-- · 2020-09-21 04:24

您的问题是什么?

Doze时光
2楼-- · 2020-09-21 04:35

,我认为问题可能在于它是一个动态打开的对话框,因为如果我添加一个具有相同项目的MenuButton,它将起作用

 oTable.addColumn(新sap.ui.table.Column({
标签:新sap.m.Label({text:""})),
模板:新sap.m.MenuButton({
图标:" sap-icon://download",
菜单:新sap.m.Menu({
项目:{
路径:"文档",
模板:新sap .m.MenuItem({text:" {filename}"}),
templateShareable:true
}
})
})
})));

但未在对话框中打开UploadCollection

谢谢!

Haoba3210
3楼-- · 2020-09-21 04:30

1。 MenuButton绑定有效

2。 对话框中的UploadCollection绑定不起作用

3。 将数组oFiles分配给项目但不使用绑定,我真的需要使用绑定(只需分配数组即可)

Cikesha
4楼-- · 2020-09-21 04:34

使用oFiles数组但没有绑定的工作解决方案在这里:

 oTable.addColumn(新sap.ui.table.Column({
标签:新sap.m.Label({text:""})),
模板:新sap.m.Button({
图标:" sap-icon://attachment",
按下:function(oEvent){
var oModel = sap.ui.getCore()。dataTableOptions.dataModel;
var oPath = oEvent .getSource()。getBindingContext()。getPath()+"/img/documents";
var oFiles = oModel.getProperty(oPath);
var oUploadCollectionItems = [];
$ .each(oFiles,function (键,项){
oUploadCollectionItems.push(new sap.m.UploadCollectionItem({fileName:item.filename}));
});
 var oDialog =新sap.m.Dialog({
标题:"文件管理器",
图标:" sap-icon://attachment",
内容:
新sap。 m.UploadCollection({
项目:oUploadCollectionItems
})
});
oDialog.open();
}
})
}))))
>
三十六小时_GS
5楼-- · 2020-09-21 04:32

//假设你有你的控制器

 控制器

 oTable.addColumn(newsap.ui.table.Column({
     标签:newsap.m.Label({text:""}),
     模板:newsap.m.Button({icon:" sap-icon://attachment",
      按下:功能(oEvent){
       var oDialog = newsap.m.Dialog({title:"文件管理器",icon:" sap-icon://attachment",
          内容:newsap.m.UploadCollection({
           物品:{
              路径:oEvent.getSource()。getBindingContext()。getPath()+"/img/documents",
              模板:newsap.m.UploadCollectionItem({fileName:" {filename}"}),
              templateShareable:true
             }})});

 oController.getView()。addDepedent(oDialog);
       oDialog.open();

 }})})); 

尝试一下。

Alawn_Xu
6楼-- · 2020-09-21 04:42

谢谢,这是我正在寻找的想法之一,即对话框未分配给视图,因此数据绑定不起作用。/p>

但是:

 theView.addDepedent(oDialog); 

返回错误,该对象不支持该方法,如果我查看控制台中的ViewView变量,则说:

sap.ui.core.mvc.XMLView元素,通过浏览对象,可以使用方法addDependent()

但是我会付出更多努力。 也许我会尝试在其中使用XML片段和对话框。 但是不确定是否有帮助;)

一周热门 更多>