SAP UI5中sap.m.Table过滤时发送两次OData请求问题咨询
SAP.m.Table搜索时触发两次OData请求的问题
我有一个绑定到实体集的sap.m.Table,搭配了SearchField,触发搜索时会对绑定数据执行过滤并返回结果,功能正常,但会发送两次带有不同分页参数的OData请求,不清楚原因。相关代码及请求详情如下:
XML视图
<Table id="tabJobs" items="{/JobSet}" beforeOpenContextMenu="onBeforeOpenContextMenu" alternateRowColors="true" busy="{config>/busy}" busyIndicatorDelay="0" sticky="HeaderToolbar,ColumnHeaders"> <headerToolbar> <Toolbar> <SearchField id="sfHeader" width="20%" placeholder="Search..." search=".onSearchJobs" showRefreshButton="true" value="{config>/searchField}"/> </Toolbar> </headerToolbar> ... </Table>
控制器代码
onSearchJobs: function(oEvent) { var oFilter = []; oFilter.push(new Filter("SearchField", FilterOperator.EQ, oEvent.getSource().getValue())); this.byId("tabJobs").getBinding("items").filter(oFilter); }
Manifest配置
"": { "dataSource": "projects", "preload": false, "settings": { "defaultCountMode": "Inline", "defaultBindingMode": "TwoWay", "refreshAfterChange": true, "defaultUpdateMethod": "MERGE", "useBatch": true, "defaultOperationMode": "Server" } },
OData请求详情
1st one: GET JobSet?$skip=0&$top=100&$filter=SearchField eq 'test'&$inlinecount=allpages 2nd one: GET JobSet?$skip=2&$top=98&$filter=SearchField eq 'test'&$inlinecount=allpages
问题分析与解决方案
原因分析
- Table粘性设置触发分页调整:你给Table配置了
sticky="HeaderToolbar,ColumnHeaders",框架会先按初始分页参数请求数据,随后根据粘性头部的高度重新计算可视区域所需数据量,进而调整$skip和$top参数发起第二次请求。 - 绑定自动刷新机制:Manifest中
refreshAfterChange: true的配置,会在绑定状态变更(比如执行过滤)时自动触发绑定刷新,导致额外请求。 - SearchField双向绑定的连锁反应:SearchField的
value采用双向绑定{config>/searchField},搜索触发时,一方面执行过滤逻辑,另一方面双向绑定会更新模型,模型变更又可能触发绑定的二次更新。
解决方案
- 显式指定绑定分页参数:在Table的items绑定中直接固定
$top参数,避免框架自动调整分页:<Table id="tabJobs" items="{ path: '/JobSet', parameters: { $top: 100 } }" ...> - 关闭不必要的自动刷新:将Manifest中的
refreshAfterChange改为false,或者在过滤时传入第二个参数阻止自动刷新:this.byId("tabJobs").getBinding("items").filter(oFilter, true); - 优化SearchField绑定方式:如果不需要实时同步搜索框值到模型,将绑定改为单向:
<SearchField ... value="{= ${config>/searchField} }"/> - 排查额外事件绑定:检查Table的
updateFinished等事件是否存在额外的绑定操作,避免触发二次请求。
内容的提问来源于stack exchange,提问作者Fishrage_
相关产品推荐
相关产品推荐

