我有一个Input元素,它充当搜索字段。提交搜索后,下面的功能会根据范围数据过滤用户输入。

我的问题是:如何找到过滤结果?例如,假设某个用户输入了有效的产品,但数据却没有显示该产品的历史记录-我希望有一种方法,如果所提交的查询结果与该产品没有匹配项,我可以通知用户(即:警报)数据?

onFilterProduct : function (oEvent) {
         // build filter array
        var aFilter = [],
            //get the searchfield Id
            oInput = this.byId("productSearch"),

            oTable = this.getView().byId("idProductsTable"),
            oBinding = oTable.getBinding("items"),

            //get searchfield value
            sQuery = oInput.getValue(),

    if (sQuery) {

            //push matches into aFilter array
            aFilter.push(new Filter("Product", FilterOperator.EQ, sQuery));

            oBinding.filter(aFilter);
        };
    };


我不知道在'aFilter'数组中的哪个位置。

这是一个有帮助的例子
http://jsbin.com/vigeg/1/edit?js,output

最佳答案

应用过滤器后,可以使用oBinding.getLength()获取列表绑定中的条目数。在您的情况下,将返回0。另一种方法是在应用过滤器后调用oTable.getItems(),它将返回一个空数组。

09-25 16:16