【问题标题】:Read OData Service and rebind List读取 OData 服务并重新绑定列表
【发布时间】:2021-05-22 15:09:54
【问题描述】:

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

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 似乎发生在与绑定到列表的模型不同的模型上。 我是否在 Success read 中进行了正确的模型更新?

问候, 马丁

【问题讨论】:

    标签: data-binding sapui5 smart-listing


    【解决方案1】:

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

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

    那么就不需要 getOwnerComponent 之类的了

    【讨论】:

      猜你喜欢
      • 2018-11-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多