所以我有一个列表,但我想过滤掉该类型(如果它'05'或'01'不显示在列表中)。以下代码适用于'05'但不适用于'01'. 我该如何编写它来添加另一个值?
items="{
path: 'Entries',
filters: [{
path: 'Type',
operator : 'NE',
value1 : '05',
value2: '01'
}]
}"
Run Code Online (Sandbox Code Playgroud)
我尝试了这个,我认为这是合乎逻辑的方式,但它随后开始显示 05 和 01。所以我假设这是使用OR过滤器而不是过滤器AND过滤器组合。
items="{
path:'Entries',
filters: [{
path: 'Type',
operator: 'NE',
value1: '05'
}, {
path: 'Type',
operator: 'NE',
value1: '01'
}]
}
Run Code Online (Sandbox Code Playgroud)
XML 视图中的语法如下:
items="{
path: '/Products',
filters: [
{
filters: [
{
path: 'ProductName',
operator: 'StartsWith',
value1: 'Sir '
},
{
path: 'Discontinued',
operator: 'EQ',
value1: false
},
],
and: true
}
]
}"
Run Code Online (Sandbox Code Playgroud)
工作示例:https://embed.plnkr.co/wAlrHB? show=view/Home.view.xml,preview
该参数filters等待过滤器信息对象的数组。过滤器信息对象受以下属性组合的约束:
path, operator, value1(value2如果适用的话)filters和and。<-- 这就是我们所需要的。API参考:sap.ui.model.Filter
第二种方法不起作用的原因是,两个过滤器都指向同一路径 ( 'Type'),这会导致 OR 逻辑。
应用于单个表列的所有过滤器均进行“或”运算,而应用于不同表列的过滤器则进行“与”运算。请使用过滤器的自动分组(如果适用)或使用显式 AND/OR 过滤器,不支持两者的混合。[来源]