首页 > 解决方案 > 有没有办法过滤 sap.m.Tree?

问题描述

我是 SAPUI5 组件的新手。

有没有办法将 $filter 应用于 sap.m.Tree?我觉得很奇怪。

我目前正在使用 $filter 选项来限制来自后端的数据(通过使用 WHERE 子句,来自 $filter 选项),所以我必须 $filter 来传递我的参数。

我的控制器:

this.oCharTable = this.getView().byId("CharTree")

var aFilterChar = new Filter("Matnr", FilterOperator.EQ , filter_base[2])

this.oCharTable.bindElement({
    path:  "/AUSP_ENTITY",
    model: "AUSP_DATA",
    filters: [aFilterChar],
    parameters: {
        NumberOfExpandedLevels : 2
    }
});

它是 $batch 有效载荷:

GET AUSP_ENTITY?$filter=HierarchyLevel%20eq%20%270%27&$skip=0&$top=100 HTTP/1.1
sap-cancel-on-close: true

标签: sapui5

解决方案


这取决于您的数据源:

  • 如果您有 odata v2,则无法过滤儿童。v2 根本不支持这一点
  • 如果您有 odata v4,则树绑定不支持此功能。好消息,它在路线图上https://github.com/SAP/openui5/issues/2728
  • 如果您预加载所有数据并将其放入 json 模型中。您可以使用 vanilla js 随意过滤

根据给定的答案。您可以忽略 v2 规范并在后端使用任何通过的过滤器进行过滤。


推荐阅读