我有一个SAPUI5 splitApp应用程序,可以在几个不同的场合收集单个客户端的信息并插入到数据库中。因此数据库表可能如下所示; clients information
我有另一个表格,其中包含客户的联系方式,因此我在解决方案provided here的帮助下使用了两个表来创建嵌套的JSON。我的JSON看起来像这样;
{
"contacts": [{
"clientno": "100",
"firstname": "Joe",
"secondname": "John",
"note": "Knocking vehicle",
"email": "dg@gmail.com",
"feed": [{
"clientno": "100",
"amount": "8745",
"reason": "Day 1 of xx"
}, {
"clientno": "100",
"amount": "7823",
"reason": "Day 2 of xx"
}, {
"clientno": "100",
"amount": "9000",
"reason": "Day 3 of xx"
}]
}, {
"clientno": "104",
"firstname": "Gatlin",
"secondname": "Joe",
"note": "Overspeeding",
"email": "mj@mworia.com",
"feed": [{
"clientno": "104",
"amount": "4556",
"reason": "Day 1 of xx"
}, {
"clientno": "104",
"amount": "9000",
"reason": "Day 2 of xx"
}]
}]
}
firstname,secondname和clientno显示在主视图上,其余显示在详细视图上。在详细视图中,我有一个表,我想显示每个客户端的所有提要。我在表的详细信息视图中有以下代码,但是,只显示了每个客户端的第一个提要。
<Table>
<columns>
<Column>
<header>
<Label text="Amount" />
</header>
</Column>
<Column minScreenWidth="Tablet" demandPopin="true" hAlign="Center">
<header>
<Label text="Reason" />
</header>
</Column>
</columns>
<ColumnListItem>
<cells>
<Text text="{feed/0/amount}" />
<Text text="{feed/0/reason}" />
</cells>
</ColumnListItem>
</Table>
请注意,如何显示每个客户端的所有Feed,例如,客户端100的表将有3行。我只有一个。我错过了什么?请帮忙。
我已经阅读了几篇过去的帖子,但我无法找到一篇正在寻找的内容。 this,this,and this too以及其他几个
谢谢,
星
答案 0 :(得分:0)
您需要更改视图中的绑定,并根据所选客户设置绑定上下文。
首先,更改聚合绑定。这告诉绑定使用feed数组作为数据源。然而,这不会显示任何内容,因为您刚刚声明您的对象具有feed属性但没有绑定上下文UI5不知道在哪里可以找到它。
<Table id="feeds" items="{feed}">
第二:更改属性绑定。在这里,您只需声明要显示的Feed属性。 UI5自动知道它们可以在feed数组中找到。
<Text text="{amount}" />
<Text text="{reason}" />
第三步:将绑定上下文设置为相应的客户。您可以将绑定上下文视为指向数据的指针。在您的情况下,绑定上下文将类似于:contacts/0
(指向第一个客户)。绑定上下文有一个前导斜杠,这非常重要。 UI5现在将查看联系人中第一个条目的上下文中的供稿。
var table = this.byId("feeds");
table.bindElement("/contacts/0");
有关使用JSON模型绑定语法的更多详细信息,请参见here。