读取 OData 服务并重新绑定列表

Read OData Service and rebind List

我有一个列表,绑定到来自 mainService 的实体集。同一视图包含一个筛选字段。一旦用户输入了一些过滤条件,就应该进行读取。我已经在阅读 OData 实体集,结果正在返回。但是我没有运气让 table 绑定到那个结果

XML 视图中的绑定

        <List
            id="list"
            width="auto"
            class="sapFDynamicPageAlignContent"
            items= "{/ItProjHeadSet}"

            busyIndicatorDelay="{masterView>/delay}"
            noDataText="{masterView>/noDataText}"
            mode="{= ${device>/system/phone} ? 'None' : 'SingleSelectMaster'}"
            growing="true"
            growingScrollToLoad="true"
            updateFinished=".onUpdateFinished"
            selectionChange=".onSelectionChange">

然后,当点击智能过滤栏的GO按钮时,我触发的onSearch事件如下:

        onSearchProjects : function (oEvent) {
        var oMasterPage = this.getView().byId("masterPage");
        var that = this;
        
        var aTokens = this._oMultiInput.getTokens();
        var aMultiFilters = aTokens.map(function (oToken) {
            var oProperties = oToken.data("range");
            return new Filter({
                path: oProperties.keyField,
                operator: FilterOperator[oProperties.operation],
                value1: oProperties.value1,
                value2: oProperties.value2
            });
        });         
        
        oMasterPage.setBusy(true);

        //Filter
        this.getOwnerComponent().getModel().read("/ItProjHeadSet", {
            filters: aMultiFilters,
            success: function (oData) {
                var list = that.getView().byId("list");
                var projectModel = new JSONModel(oData);
                
                var oModel = that.getView().getModel("/ItProjHeadSet");
                oModel.setData(projectModel);
                oModel.updateBindings(true);
                
            error: function (oData) {
                MessageToast.show(that.getResourceBundle().getText("noProjectsFetched"));
            }
        });
        oMasterPage.setBusy(false);
        
    },

那么问题是,虽然我在读取中收到了相应的成功结果,但 setData 似乎发生在与绑定到列表的模型不同的模型上。 我是否在成功阅读中进行了正确的模型更新?

此致, 马丁

我自己解决了,通过获取列表绑定然后应用过滤器:

List.getBinding("items").filter(aMultiFilters, "Application");

那么就不需要 getOwnerComponent 之类的了