在工作清单上搜索在SAPUI5 Fiori模板应用程序中不起作用

时间:2016-10-21 07:24:10

标签: sapui5 sap-fiori

SAPUI5开发人员,

我在WebIDE中创建了一个Firori Worklist项目。我将它连接到OData服务器并默认选择SAPUI版本1.38。

它正确显示工作清单,我可以按下项目并在视图之间移动并特别访问该对象。

所以一切似乎都运转正常。

唯一不起作用的是搜索框。每当我在里面键入内容并按回车键时,它的事件就被触发,但它不会过滤任何内容。

调用的函数如下:

onSearch: function(oEvent) {

        if (oEvent.getParameters().refreshButtonPressed) {
            // Search field's 'refresh' button has been pressed.
            // This is visible if you select any master list item.
            // In this case no new search is triggered, we only
            // refresh the list binding.
            this.onRefresh();
        } else { 
            var oTableSearchState = [];
            var sQuery = oEvent.getParameter("query");

            if (sQuery && sQuery.length > 0) {
                oTableSearchState = [new Filter("ZBrandName", FilterOperator.Contains, sQuery)];
            } 
            this._applySearch(oTableSearchState);
        }

    },
     /**
     * Internal helper method to apply both filter and search state together on the list binding
     * @param {object} oTableSearchState an array of filters for the search
     * @private
     */
    _applySearch: function(oTableSearchState) {
        var oTable = this.byId("table"),
            oViewModel = this.getModel("worklistView");
            console.log(oTable);
        oTable.getBinding("items").filter(oTableSearchState, "Application");
        // changes the noDataText of the list in case there are no filter results
        if (oTableSearchState.length !== 0) {
            oViewModel.setProperty("/tableNoDataText", this.getResourceBundle().getText("worklistNoDataWithSearchText"));
        }
    },

提前致谢。

2 个答案:

答案 0 :(得分:0)

var oFilter = new sap.ui.model.Filter(oTableSearchState, true);
oTable.getBinding("items").filter(oFilter, "Application");

答案 1 :(得分:0)

我报告的问题也可能发生在其他人身上,因此我回答了我的问题,因为我找到了答案。

故事是,当我使用NorthWind OData服务时,SAP WebIDE的Fiori Worklist模板工作正常,我可以看到一个项目列表并搜索它们(过滤器)。

但是当我使用内部SAP ERP OData服务时,我可以看到项目列表,但我无法过滤它们。

因此,我认为问题与SAP有关,无法更新视图。

但实际上,SAPUI5会向OData Server发送一个新请求以进行每次过滤,而我认为过滤是在浏览器内完成的。

因此,问题与忽略请求选项的OData Service实现有关。虽然我们必须在OData服务中实现OData规范的全部功能。

我希望此信息适用于遇到此问题的其他人。