首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >OData绑定扩展参数一对多关系

OData绑定扩展参数一对多关系
EN

Stack Overflow用户
提问于 2017-12-19 09:22:57
回答 1查看 2.1K关注 0票数 3

在这里阅读有关这个问题的多个问题,但都没有帮助。

我有下表:

代码语言:javascript
复制
<Table id="table"
  width="auto"
  items="{
    path: '/Master',
    sorter: {
      path: 'id',
      descending: false
    },
    parameters: {
      expand: 'ToB'
    }
  }"
>

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

代码语言:javascript
复制
    <cells>
      <Text text="{ToB/name1}" />
    </cells>

然而,这样做是可行的:

代码语言:javascript
复制
    <cells>
      <VBox items="{ToB}">
        <Text text="{name1}"/>
      </VBox>
    </cells>

ToB有一个属性"selected“,可以是01。只有Master表中ID的一个条目可以是1,所以我认为这是一种获取11关系的方法。但是我想不出来,怎么做,已经用表达式绑定来尝试了:

代码语言:javascript
复制
<Text text="{= ${ToB/selected} === 1 ? ${ToB/name1} : 'No Entry'}"/>

但它总是在我的桌子上显示“禁止进入”。

编辑:用于测试目的的

代码语言:javascript
复制
<Text text="{= ${ToB/selected} === 1 ? ${ToB/name1} : ${ToB/name1}}"/>

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

编辑2:为了澄清我的问题,我让它使用VBox工作,但是我希望每一行有一个条目,即对于特定的ID有Peter、Paul和Mary的名称,只有Peter有"selected“值1,所以我只想在这个表行中使用Peter。

EN

回答 1

Stack Overflow用户

发布于 2018-01-26 22:30:34

问题

text="{ToB/name1}"不能工作的原因是解析路径ToB返回集合,因为“多”-cardinality不适用于属性绑定。

另一方面,这也意味着它适用于聚合绑定,因为您已经可以在<VBox items="{ToB}"/>中观察到。

替代方案

我希望每一行有一个条目,即在特定的ID中有Peter、Paul和Mary的名称,只有Peter有"selected“值1,所以我只想在这个表行中使用Peter。

如果您只想在ToB<VBox>中显示特定的实体,您可以直接在视图中分别定义一个过滤器。以您为例,由"selected" === 1编写。

代码语言:javascript
复制
<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>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47883646

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档