SAPUI5-通过服务器端分页使用oData Services

2020-09-24 19:39发布

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

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


嗨,

我最近开始使用SAPUI5,正在尝试使用 northwind oData服务

我正在使用列表中的客户实体集。 我观察到这使用服务器端分页,因此我只能得到一些条目。

如何获取下一个条目? 为每个负载添加单独的模型似乎不是一个逻辑解决方案。

manifest.json中的模型

"模型":{
 " i18n":{
 " type":" sap.ui.model.resource.ResourceModel",
 "设置":{
 " bundleName":" sapui5.app54.i18n.i18n"
 }
 },
 " nwCustomer":{
 " type":" sap.ui.model.json.JSONModel",
 " uri":" http://services.odata.org/V4/Northwind/Northwind.svc/Customers"
 }
 },
 

在视图中列出实现

 sap.ui.jsview(" sapui5.app54.view.zjsv_detail_54_01",{
 getControllerName:function(){
 返回" sapui5.app54.controller.zjsv_detail_54_01";
 },

 createContent:function(oController){
 var oList = new sap.m.List(" idListCust",{
 物品:{
 路径:" nwCustomer>/值",
 模板:新sap.m.ObjectListItem(" idObjectList",{
 标题:" {nwCustomer> CustomerID}",
 类型:"有效",
 按下:[oController.onSelectCust],
 属性:[
 {" text":" {nwCustomer> ContactName}"},
 {" text":" {nwCustomer> CompanyName}"}],
 }),
 },
 });

  返回新的sap.m.Page({
 标题:"标题",
 内容:[oList]
 });
 }


 });
 

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

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


嗨,

我最近开始使用SAPUI5,正在尝试使用 northwind oData服务

我正在使用列表中的客户实体集。 我观察到这使用服务器端分页,因此我只能得到一些条目。

如何获取下一个条目? 为每个负载添加单独的模型似乎不是一个逻辑解决方案。

manifest.json中的模型

"模型":{
 " i18n":{
 " type":" sap.ui.model.resource.ResourceModel",
 "设置":{
 " bundleName":" sapui5.app54.i18n.i18n"
 }
 },
 " nwCustomer":{
 " type":" sap.ui.model.json.JSONModel",
 " uri":" http://services.odata.org/V4/Northwind/Northwind.svc/Customers"
 }
 },
 

在视图中列出实现

 sap.ui.jsview(" sapui5.app54.view.zjsv_detail_54_01",{
 getControllerName:function(){
 返回" sapui5.app54.controller.zjsv_detail_54_01";
 },

 createContent:function(oController){
 var oList = new sap.m.List(" idListCust",{
 物品:{
 路径:" nwCustomer>/值",
 模板:新sap.m.ObjectListItem(" idObjectList",{
 标题:" {nwCustomer> CustomerID}",
 类型:"有效",
 按下:[oController.onSelectCust],
 属性:[
 {" text":" {nwCustomer> ContactName}"},
 {" text":" {nwCustomer> CompanyName}"}],
 }),
 },
 });

  返回新的sap.m.Page({
 标题:"标题",
 内容:[oList]
 });
 }


 });
 
付费偷看设置
发送
4条回答
槿木_熙
1楼 · 2020-09-24 20:32.采纳回答

您好 Chetan Mishra

您的ODATA服务必须支持以下URL属性:

http://services.odata.org/V4/Northwind/Northwind。 svc/Customers ?$ top = 2&$ skip = 0

这意味着我们将从第一类的"客户"实体集中仅获得2个条目。 当您转到"第二页"时,它必须执行以下操作:

http://services.odata.org/V4/Northwind/Northwind。 svc/Customers ?$ top = 2&$ skip = 2

知道了吗?

因此,您需要在sap.m.List中设置这些属性。 尝试使用以下属性:

 growing =" true"

 growthThreshold =" 4"

 growthScrollToLoad =" false" 

此演示也使用它。

希望有帮助,

Bruno

微wx笑
2楼-- · 2020-09-24 20:19

您好 Bruno Lucattelli

非常感谢您指出错误。 现在一切正常。

但是,我有一些有关维护的后续查询 在Eclipse中开发应用程序时的目标位置,并提出了一个单独的问题。 请帮我这些。

"此外,您对sap.m.List的绑定是错误的。
 您应该在manifest.json中修复服务定义,然后使用绑定项目=" {/Customers}"。" 

我在manifest.json中定义了多个模型,因此为了唯一地标识所需的模型,我使用了" nwCustomer>/value"进行绑定,其中" nwCustomer"是manifest.json中定义的模型名称,而"/value'是模型中的实体名称。

软件心理学工程师
3楼-- · 2020-09-24 20:28

因此,我想您可以使用List控件的属性" Growing"。

看看 https://sapui5.hana.ondemand.com/sdk/#/sample/sap.m.sample.ListGrowing/preview https://sapui5.hana.ondemand.com/sdk/#/api/sap.m.ListBase

sap.m.List扩展了sap.m.ListBase

bbpeas
4楼-- · 2020-09-24 20:20

嗨Andrij,

感谢您的回复。

我已经检查了sap.m.List控件的增长属性,如示例,但是它对我不起作用。 此外,该示例演示了客户端站点分页,即JSON文件包含所有记录,并且要显示的记录数是从sap.m.List控件中控制的。

如果我错过了某些事情或做错了什么,请告诉我。

我的列表控件当前如下:

 var oNWMasterList = new sap.m.List(" idNWCustomer",{
 成长:是的,
 growthScrollToLoad:是,
 物品:{
 路径:" nwCustomer>/值",
 模板:新sap.m.ObjectListItem(" idNWCustList",{
 标题:" {nwCustomer> ContactName}",
 类型:"有效",
 按下:[oController.onSelectCust],
 简介:" {nwCustomer> CustomerID}",

 属性:[
 {" text":" {nwCustomer> ContactTitle}"},
 {" text":" {nwCustomer> Country}"}]

 }),
 },
 });
 

一周热门 更多>