xml查看来自两个实体集的绑定数据

时间:2018-07-04 18:50:57

标签: javascript odata sapui5

我正在使用Master-Detail应用程序。我有一个带有列表控件的视图,并将其与来自名为“ entityset1”的实体集的数据绑定。

Odata -> data from the entityset1
<serialno>122333</serialno>

在同一服务中,我确实有另一个称为entityset2的实体集。

Odata -> data from the entityset2
<hdata>is Active</hdata>

只有来自过滤器(/ sap / opu / odata / sap / My_SRV / entityset2?$ filter =(serialno = 122333)

的实体集2上的数据才会检索到

我现在正尝试从entityset2检索值并将其绑定到列表中的一个属性。此列表已与entityset1数据绑定。

Myview.xml。

<List id="list" select="_handleSelect">
    <ObjectListItem id="MAIN_LIST_ITEM" press="_handleItemPress" title="{Name}">
        <attributes>
            <ObjectAttribute id="ATTR1" text="{serialno}" />
<ObjectAttribute id="ATTR2" text="{entityset2/hdata}" />            
        </attributes>
    </ObjectListItem>
</List>

Controller.js(使用以下几行进行绑定)

this.oList.bindAggregation("items", {
            path: '/entityset1',
            template: this.oListItem,
            filters: this.searchFilters
        });
var oserialnum = this.getView().getBindingContext().getObject().serialno;
var oHdata = new sap.ui.model.Filter("serialno", "EQ",oserialnum);
this.searchFilters = new sap.ui.model.Filter([oserialnum],true);
                this.oList.bindAggregation("items",{    
                    path : "/entityset2",   
                    filters :this.searchFilters
                }); 

但是,我在此行“ this.getView()。getBindingContext()。getObject()。serialno”上收到错误“无法读取未定义的属性'getObject'”。

有人可以建议如何从entity2中检索数据并将其绑定到列表吗?

3 个答案:

答案 0 :(得分:1)

您无法使用该视图获取BindingContext。 Read more about binding Context-它是指向模型数据中对象的指针。

此外,serialNo(您尝试从Model检索的参数也是上下文的,即,每个行项目都不同)。

一种方法是:

onListeItemPress 列表事件

<ObjectListItem ... ... press="onListItemPress" >

在相应的控制器中

  

`onListItemPress:函数(oEvent){

     

var oserialnum = Event.getSource()。getBindingContext(“ mainODataModel”).. getProperty(“ serialNo”)`

让我知道是否有帮助。

答案 1 :(得分:1)

如果我对您的理解正确,那么您需要的是关联。

它们将允许OData服务通过将“ entityset2”与您的序列号“关联”,直接从entityset2和entityset1传递所需的数据。

如果您使用的是SAP后端和SEGW,则此博客可能会帮助您:

https://blogs.sap.com/2014/09/24/lets-code-associationnavigation-and-data-provider-expand-in-odata-service/

答案 2 :(得分:1)

在创建主从应用程序时,我遇到了类似的问题,但发现 from the SAP Forums 不可能,这很有意义,最终在后端中创建了一个单独的实体集,该实体集具有到另一个集的链接