1. 程式人生 > 其它 >SAPUI5 Walkthrough Step 24: Filtering

SAPUI5 Walkthrough Step 24: Filtering

Step 24: Filtering 資料過濾:增加SearchField元件,用來對資料進行過濾 修改 webapp/view/InvoiceList.view.xml 檔案, 增加SearchField元件
<mvc:View xmlns="sap.m" xmlns:mvc="sap.ui.core.mvc" controllerName="sap.ui.demo.walkthrough.controller.InvoiceList">
    <List id="invoiceList" headerText="{i18n>invoiceListTitle}" class
="sapUiResponsiveMargin" width="auto" items="{invoice>/Invoices}"> <headerToolbar> <Toolbar> <Title text="{i18n>invoiceListTitle}"/> <ToolbarSpacer/> <SearchField width="50%" search=".onFilterInvoices"/> </
Toolbar> </headerToolbar>
<items> ...... </items> </List> </mvc:View>
修改webapp/controller/InvoiceList.controller.js 檔案,增加onFilterInvoices的處理邏輯
sap.ui.define([
    "sap/ui/core/mvc/Controller",
    "sap/ui/model/json/JSONModel",
    "../model/formatter",
    
"sap/ui/model/Filter", "sap/ui/model/FilterOperator"
], function(Controller, JSONModel, formatter, Filter, FilterOperator) { "use strict"; return Controller.extend("sap.ui.demo.walkthrough.controller.InvoiceList", { formatter: formatter, onInit: function() { var oViewModel = new JSONModel({ currency: "EUR" }); this.getView().setModel(oViewModel, "view"); }, onFilterInvoices : function (oEvent) { var aFilter = []; var sQuery = oEvent.getParameter("query"); if (sQuery) { aFilter.push(new Filter("ProductName", FilterOperator.Contains, sQuery)); } var oList = this.byId("invoiceList"); var oBinding = oList.getBinding("items"); oBinding.filter(aFilter); } }); });

執行。 輸入值後回車,資料被過濾