在SAPUI5 XML视图中使用OData的导航属性

时间:2016-05-18 20:38:23

标签: odata sapui5

假设有两个实体表,即Customer和Order,其中包含以下字段: 客户 - > Id,CustomerName,OrderId 命令 - > Id,CustomerId,OrderName

现在在Odata服务中,还定义了关联以及导航属性,即

"Customers" navigates ("Customer_Orders" as "HisOrders");
association "Customer_Orders" principal "Customers"("ID") multiplicity "1"
dependent "Orders"("CustomerID") multiplicity "*"; 

在webapp中,myview.xml存在一个包含3列的表:CustomerId,CustomerName,OrderName。

我将行的绑定添加为items={/Customers} 对于CustomerId和CustomerName列,我使用了以下内容:{CustomerId} and {CustomerName}

但是如何在xml视图中绑定OrderName列?

2 个答案:

答案 0 :(得分:2)

尝试这种方式:

<Label text="Order ID"/>
<Text text="{OrderID}" objectBindings="{Customer_Orders}" />

这里我假设"Customer_Orders"是NavigationProperty的名称,"OrderID"是导航目标的属性。

答案 1 :(得分:1)

您必须使用OData $ expand来获取Order实体以及Customer。我假设您的实体集称为“客户”和“订单”(通常是CustomerSet和OrderSet)。

在XMLView中你应该做某事。像这样:

<Table items="{
         path: '/Customers',
         parameters: {
           expand: 'Orders'
         }
       }">

然后你的列绑定就像:

{Orders/OrderName}

我必须承认,我没有以1:1的关系做到这一点,但它基本上应该像这样工作。如果它仍然不起作用,请发布您的代码和metadata.xml。

BR 克里斯