【问题标题】:Sapui5: How to bind oData service to a SAPUI5 table when it has $expand parameterSapui5:如何将 oData 服务绑定到具有 $expand 参数的 SAPUI5 表
【发布时间】:2014-05-24 13:17:29
【问题描述】:

当使用 OData $expand 参数时如何将 oData 服务绑定到 SAPUI5 表

<Table id="contactPickerTable"
          items="{path: 'modelPersons>/ContactSet',
          filters : [{path : 'Customer',operator : 'EQ',value1:'2035235403'}]
          parameters : {expand:'Address'}}"  
>
.....
<ObjectIdentifier 
      title="{modelPersons>Title}"
      text="{modelPersons>PersonId}" />

我知道上面将数据列表绑定到表的示例有效。但是,如果我的服务中有 $expand,那么如何在 ObjectIdentifier 中显示返回集合的属性?我的意思是上下文路径是什么?

服务器响应如下所示:

<entry>
<id></id>
<title type="text">PartnerSet('2010002791')</title>
<updated>2014-05-24T08:05:58Z</updated>
...
<link href="PartnerSet('2010002791')" rel="self" title="Partner"/>
<link href="PartnerSet('2010002791')/Address" rel="http://schemas.microsoft.com/ado/2007/08/dataservices/related/Address" type="application/atom+xml;type=feed" title="Address">
<m:inline>
<feed xmlns="http://www.w3.org/2005/Atom" xmlns:d="http://schemas.microsoft.com/ado/2007/08/dataservices" >
<id>PartnerSet('2010002791')/Address</id>
<title type="text">AddressSet</title>
<updated>2014-05-24T08:05:58Z</updated>
<author>
<name/>
</author>
<link href="PartnerSet('2010002791')/Address" rel="self" title="AddressSet"/>
<entry>
<id></id>
<title type="text">AddressSet('')</title>
<updated>2014-05-24T08:05:58Z</updated>
...
<d:FirstName>DM LABO SARL</d:FirstName>
<d:Name>DIDIER MARTIN LABORATOIRE</d:Name>
<d:Name3/>
...
...

如何访问“名称”属性?

【问题讨论】:

    标签: data-binding odata sapui5


    【解决方案1】:

    试试下面的方法,我假设地址有街道、州和国家,我把它们放在 $Select 条件中以限制返回的字段

    <Table id="contactPickerTable"
           items="{
             path: 'modelPersons>/ContactSet',
             filters : [{ path: 'Customer', operator: 'EQ', value1: '2035235403' }]
             parameters: {
               expand: 'Address',
               select: 'Title,PersonId,Address/Street,Address/State,Address/Country'
             } 
           }">
    ...
    <ObjectIdentifier
         title="{modelPersons>Title}"
         text="{modelPersons>PersonId}" />
         <Text
            text="{modelPersons>Address/Street}"/>
         <Text
            text="{modelPersons>Address/State}"/>
         <Text
            text="{modelPersons>Address/Country}"/>
    

    JsBin 示例:OData Expand and Select with XmlView

    【讨论】:

    • 当我添加 'select' 属性时,出现导航损坏错误
    • 参数对象有多个拼写错误
    • 我修改了..现在从服务器获取数据但聚合没有发生。表格显示“没有数据”
    • 如果不支持选择退出,转到控制台->网络并查找查询并查看正在发送到服务器的内容
    • 是的。选择不支持,所以我只是将其删除。在响应中得到结果。我能够显示“Title”和“personId”。如何访问位于名为“AddressSet”的嵌套实体内的街道、国家/地区?
    猜你喜欢
    • 2022-10-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多