在此处阅读有关此问题的多个问题,但这些问题都没有帮助。
我有下表:
<Table id="table"
width="auto"
items="{
path: '/Master',
sorter: {
path: 'id',
descending: false
},
parameters: {
expand: 'ToB'
}
}"
>
如何在表格中显示ToB
的属性?
由于ToB
与Master
之间存在一对多关系,因此这不起作用(我猜这就是原因):
<cells>
<Text text="{ToB/name1}" />
</cells>
虽然这有效:
<cells>
<VBox items="{ToB}">
<Text text="{name1}"/>
</VBox>
</cells>
ToB
有一个属性&#34;已选中&#34;可以是0
或1
。 Master
表格中只有一个ID条目可以是1
,因此我认为这是一种将1
转换为1
关系的方式。
但我无法解决,如何做到这一点,已经尝试过表达式绑定:
<Text text="{= ${ToB/selected} === 1 ? ${ToB/name1} : 'No Entry'}"/>
但它始终显示&#34; No Entry&#34;在我的桌子里。
编辑:用于测试目的:
<Text text="{= ${ToB/selected} === 1 ? ${ToB/name1} : ${ToB/name1}}"/>
但它只是让我的表格的列空了,所以我猜测绑定是不正确的。
编辑2:以澄清我的问题,我使用VBox工作,但我希望每行有1个条目,即名称为Peter,Paul和Mary的特定ID,只有彼得有选择&#34;&#34;值1
,所以我想在这个表格行中只有Peter。
答案 0 :(得分:0)
text="{ToB/name1}"
不起作用的原因是因为解析路径ToB
会返回集合,因为“很多” - 基数不适用于< em>属性绑定。
另一方面,这也意味着它适用于聚合绑定,因为您已经可以使用<VBox items="{ToB}"/>
进行观察。
我希望每行有1个条目,即特定ID的名称为Peter,Paul和Mary,只有Peter的“已选择”值为1,所以我只希望Peter在此表格行中。
如果您只想在ToB
中显示<VBox>
中的某个实体,则可以直接在视图中分别定义过滤器。在您的情况下,按"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>