表“Filter”发送 2 个 oData 请求,带有 2 个不同的分页查询

问题描述 投票:0回答:1

我有一个简单的 sap.m.Table,它绑定到一个实体集。有一个搜索字段,使用时将对绑定进行简单的过滤并返回结果。一切正常,但由于某种原因它发送了 2 个 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);
}

清单:

"": {
    "dataSource": "projects",
    "preload": false,
    "settings": {
        "defaultCountMode": "Inline",
        "defaultBindingMode": "TwoWay",
        "refreshAfterChange": true,
        "defaultUpdateMethod": "MERGE",
        "useBatch": true,
        "defaultOperationMode": "Server"
    }
},

o数据调用:

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
sapui5
1个回答
0
投票

所以问题与 UI5 无关,而是与后端(ECC)相关。后端开发人员实现了 $skiptoken,看似不正确,这导致前端发送第二次调用:

lv_handle = io_tech_request_context->get_skiptoken( ).
...
es_response_context-skiptoken = CONV #( lv_handle ).
© www.soinside.com 2019 - 2024. All rights reserved.