javascript - 如何在 SAPUI5 表中使用 odata 扩展参数?
问题描述
我想显示来自 SAPUI5 表中具有一对多关系的 2 个 odata 实体的数据。
我尝试了多种在表格中引用的方式(例如条目/标题)。调试显示条目中的数据已接收但未显示在表中。
<Table
items="{
path: '/Line',
parameters : {
expand : 'entries'
}
}" >
<columns>
<Column />
<Column />
</columns>
<items>
<ColumnListItem>
<Label text="{ID}" />
<Label text="{title}
{shape}" />
</ColumnListItem>
</items>
</Table>
这是我的 metadata.xml
<edmx:Edmx xmlns:edmx="http://schemas.microsoft.com/ado/2007/06/edmx" xmlns:sap="http://www.sap.com/Protocols/SAPData" xmlns:ux="http://www.sap.com/Protocols/OData4SAP/UX" xmlns:gp="http://www.sap.com/Protocols/SAPData/GenericPlayer" Version="1.0">
<edmx:DataServices xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata" m:DataServiceVersion="2.0">
<Schema xmlns="http://schemas.microsoft.com/ado/2008/09/edm" Namespace="TimelineService">
<EntityType Name="Entry">
<Key>
<PropertyRef Name="ID"/>
</Key>
<Property Name="ID" Type="Edm.Int32" Nullable="false"/>
<Property Name="title" Type="Edm.String"/>
<Property Name="startDate" Type="Edm.DateTimeOffset"/>
<Property Name="shape" Type="Edm.String"/>
<Property Name="lineID_ID" Type="Edm.Int32"/>
<NavigationProperty Name="lineID" Relationship="TimelineService.Entry_lineID" FromRole="Entry" ToRole="Line"/>
</EntityType>
<EntityType Name="Line">
<Key>
<PropertyRef Name="ID"/>
</Key>
<Property Name="ID" Type="Edm.Int32" Nullable="false"/>
<NavigationProperty Name="entries" Relationship="TimelineService.Entry_lineID" FromRole="Line" ToRole="Entry"/>
</EntityType>
<Association Name="Entry_lineID">
<End Type="TimelineService.Entry" Multiplicity="*" Role="Entry"/>
<End Type="TimelineService.Line" Multiplicity="0..1" Role="Line"/>
<ReferentialConstraint>
<Principal Role="Line">
<PropertyRef Name="ID"/>
</Principal>
<Dependent Role="Entry">
<PropertyRef Name="lineID_ID"/>
</Dependent>
</ReferentialConstraint>
</Association>
<EntityContainer Name="EntityContainer" m:IsDefaultEntityContainer="true">
<EntitySet Name="Entry" EntityType="TimelineService.Entry"/>
<EntitySet Name="Line" EntityType="TimelineService.Line"/>
<AssociationSet Name="Entry_lineID" Association="TimelineService.Entry_lineID">
<End EntitySet="Entry" Role="Entry"/>
<End EntitySet="Line" Role="Line"/>
</AssociationSet>
</EntityContainer>
</Schema>
</edmx:DataServices>
</edmx:Edmx>
解决方案
请尝试以下解决方案:
打开你的Controller,并执行一个绑定元素到你的上下文控制器。
this.getView().bindElement({
path : "/Line",
parameters : {
"expand" : "entries"
}
});
现在,修改您的视图
<Table items="{
path: 'entries'
}">
<columns>
<Column />
<Column />
</columns>
<items>
<ColumnListItem>
<Label text="{ID}" />
<Label text="{title}
{shape}" />
</ColumnListItem>
</items>
谢谢你。
推荐阅读
- postgresql - 数据库 db:pg://postgres@/postgres 尚未为 Sqitch 初始化
- authentication - 如何使用 Passport Strategies 正确注销 JWT?
- mysql - MySQL DATEDIFF 函数 VS 比较 INTERVAL DAY
- r - R中的ggplot()中的分面
- javascript - How to edit the table value in React?
- c# - Cisco TSP - 在 C# 中从 32 位到 64 位的工具迁移
- javascript - JavaScript 词法环境
- c# - 为什么我的浮点变量总是为 0,即使我设置了它
- php - 从 CLI 获取输入并在 PHP 中创建数组。这个对吗?
- r - 为什么从 3.5.2 升级到 4.0.0 后,R 的排序会更改使用 load() 导入的数据?