gpt4 book ai didi

sapui5 - 在多个字段上使用 "OR"和 "AND"条件过滤

转载 作者:行者123 更新时间:2023-12-03 21:28:48 26 4
gpt4 key购买 nike

我想实现以下 where 条件。如何在 UI5 中创建过滤器?
field-A NE 'O' and ( field-B contains 'search-text' or field-C contains 'search-text' )
后端业务场景:

  • 应用过滤器field-A NE 'O'绑定(bind)列表时。
  • 应用过滤器( field-B contains 'search-text' or field-C contains 'search-text' )实现对搜索字段的搜索功能。

  • 过滤实例:
    new sap.ui.model.Filter("field-A", sap.ui.model.FilterOperator.NE, "O");
    new sap.ui.model.Filter("field-B", sap.ui.model.FilterOperator.contains, search-text);
    new sap.ui.model.Filter("field-C", sap.ui.model.FilterOperator.contains, search-text);

    最佳答案

    下面是一个使用 Northwind 的 OData 组合多个过滤器的最小示例:https://embed.plnkr.co/AoIZI4/ .完整列表见 here .

    实例化过滤器时,而不是 path , operator , 和 value1 , 使用属性 filtersand组合多个过滤器,如 Filter API reference 所示.

    在我们的例子中,我们定义了三个过滤器:

  • 第一个 field-A NE 'O'这也用于上面 Plunker 示例中的初始绑定(bind)(过滤器 1)
  • 对于搜索事件处理程序中的其他两个,使用 and: false含义 OR (过滤器 2)。

  • 过滤器 1:

    getInitialFilter: function() {
    return new Filter("Field-A", FilterOperator.NE, "O");
    },

    过滤器 2:

    getSearchFilters: function(query) {
    return new Filter({
    filters: [
    new Filter("Field-B", FilterOperator.Contains, query),
    new Filter("Field-C", FilterOperator.Contains, query),
    ],
    and: false,
    });
    },

    最后,当用户输入搜索查询时,我们将这两个过滤器与 and: true 结合起来。申请 ODataListBinding .

    onSearch: function(event) {
    this.byId("myList").getBinding("items").filter(new Filter({
    filters: [
    this.getInitialFilter(),
    this.getSearchFilters(event.getParameter("query")),
    ],
    and: true,
    }), FilterType.Application);
    },

    注:过滤时,请记住应用 FilterType "Application"作为 myListBinding.filter 中的第二个参数让框架知道过滤器已设置 由你 (应用程序)而不是通过控件。否则,列表绑定(bind)会将您的过滤器与最初设置的应用程序过滤器结合起来。

    关于sapui5 - 在多个字段上使用 "OR"和 "AND"条件过滤,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42433200/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com