点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)你好 我想制作一个应用程序,以...
点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)你好 我想制作一个应用程序,以...
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
你好
我想制作一个应用程序,以显示来自OData服务的数据,并且用户可以使用在排序对话框中选择的顺序对数据进行排序。
我是这样的
handleSortingdialogConfirm:function(oEvent){ var oTable = this.byId(" dataTable"), oBinding = oTable.getBinding(" items"), mParams = oEvent.getParameters(), sPath, b下降 sPath = mParams.sortItem.getKey(); bDescending = mParams.sortDescending; aSorters.push(new Sorter(sPath,bDescending,this.fnComparator)); oBinding.sort(aSorters); },
但是,此程序发送请求以" order by"从服务中选择数据。
我认为,此请求是不必要的,因为所有数据已经在客户端中,可以在表中显示。
我想知道如何在不发送请求的情况下对数据进行排序,这意味着在客户端进行排序。
我在Internet上找到了一些示例,但它们仅解释了在XML视图中实现" sorter"属性的静态排序,并且我不确定它是否可以支持用户通过对话框选择排序顺序。
嗨,
根据您的问题,我认为您表的项目绑定是ODataMdel。
您可以将OperationMode设置为 sap.ui.model ODataModel中的.odata.OperationMode.Client 作为 Mahesh Kumar Palavalli 指出:
操作在客户端上执行。 仅当所有条目均已加载到客户端时,此方法才有效。 初始请求会获取完整的集合,过滤和排序不会触发其他请求。
如果要在客户端进行排序,建议您使用以下模式:
在option2中,binding.sort()方法将不发送服务器请求。
服务器端排序-为什么?
发送请求以从服务器选择数据的概念是选择适当的数据,同时最大程度地减少通过网络发送的数据量。 看一下查询:$ orderby查询选项旁边有一个$ top选项,其值是20或100,取决于表的配置。 这是因为表格只会向用户显示该数量的项目。 如果用户向下滚动,则基于项目计数,Table组件将知道应该使用skip和top组合来查询数据的哪一部分。
考虑您有一百万个产品项,并且按字母顺序查询,将发出top = 20的请求。 比您将顺序更改为反向。 您期望看到什么? 是20种商品按逆序排序,还是订购的100万种产品中排在前20名的商品?
此致
Peter
一周热门 更多>