gpt4 book ai didi

OData Binding 扩展参数一对多关系

转载 作者:行者123 更新时间:2023-12-02 02:58:32 26 4
gpt4 key购买 nike

在此处阅读有关此问题的多个问题,但没有一个有帮助。

我有下表:

<Table id="table"
width="auto"
items="{
path: '/Master',
sorter: {
path: 'id',
descending: false
},
parameters: {
expand: 'ToB'
}
}"
>

如何在我的表中显示 ToB 的属性?因为 ToBMaster 具有一对多关系,所以这是行不通的(我想这就是原因):

    <cells>
<Text text="{ToB/name1}" />
</cells>

虽然这是可行的:

    <cells>
<VBox items="{ToB}">
<Text text="{name1}"/>
</VBox>
</cells>

ToB 有一个属性“selected”,可以是 01Master 表中 ID 的条目中只有一个可以是 1,所以我认为这是让我的 1 成为 1 关系。但我无法解决如何执行此操作,已经尝试过表达式绑定(bind):

<Text text="{= ${ToB/selected} === 1 ? ${ToB/name1} : 'No Entry'}"/>

但它总是在我的表格中显示“No Entry”。

编辑:出于测试目的,它尝试:

<Text text="{= ${ToB/selected} === 1 ? ${ToB/name1} : ${ToB/name1}}"/>

但它只是让我的表的列为空,所以我猜绑定(bind)不正确。

编辑 2:为了澄清我的问题,我使用 VBox 使其工作,但我希望每行有 1 个条目,即特定 ID 的名称为 Peter、Paul 和 Mary,只有 Peter 具有“选定”值 1,因此我只希望该表行中有 Peter。

最佳答案

问题

为什么text="{ToB/name1}"的原因不起作用是因为解析路径 ToB由于“多”基数不适用于属性绑定(bind),因此返回一个集合

另一方面,这也意味着它适用于聚合绑定(bind),正如您已经通过 <VBox items="{ToB}"/> 观察到的那样.

备选

I want to have 1 entry per row i.e. there are the names Peter, Paul, and Mary for the specific ID, only Peter has the "selected" value 1, so I want just Peter in this table row.

如果您只想显示来自 ToB 的某个实体在<VBox> ,您可以直接在 View 中分别定义过滤器。在你的情况下,通过 "selected" === 1 .

<Table items="{
path: '/Master',
parameters: {
expand: 'ToB'
}
}">
<items>
<ColumnListItem>
<VBox items="{
path: 'ToB',
filters: [
{
path: 'selected',
operator: 'EQ',
value1: 1
}
]
}">
<Text text="{name1}"/>
</VBox>
<!-- ... -->
</ColumnListItem>
</items>
<!-- ... -->
</Table>

关于OData Binding 扩展参数一对多关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47883646/

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