Sapui5 聚合绑定仅显示最后一项
您好,我正在尝试将聚合绑定到表控件上,但结果行会与数据集中的最后一个结果重复。更详细地说,该表包含正确数量的行和列,但每行重复相同的数据 执行OData读取调用并将结果放入JSON模型并将该模型绑定到表上是可行的,但这似乎代价不必要 装订部分Sapui5 聚合绑定仅显示最后一项,sapui5,Sapui5,您好,我正在尝试将聚合绑定到表控件上,但结果行会与数据集中的最后一个结果重复。更详细地说,该表包含正确数量的行和列,但每行重复相同的数据 执行OData读取调用并将结果放入JSON模型并将该模型绑定到表上是可行的,但这似乎代价不必要 装订部分 var filter = new Filter("itemID", sap.ui.model.FilterOperator.EQ, this.item.itemID); this._template = this._template ? this._t
var filter = new Filter("itemID", sap.ui.model.FilterOperator.EQ, this.item.itemID);
this._template = this._template ? this._template : sap.ui.xmlfragment("InventoryListItem", this.getView().getController());
this.inventoryList.bindAggregation("items", {
path: "oDataModel>/InventoryUsages",
filters: [filter],
template: this._template,
parameters: {
select: 'inventoryID,memberID,fName,lName,condition,purchasedAt,price'
}
});
模板:
<core:FragmentDefinition
xmlns="sap.m"
xmlns:core="sap.ui.core"
xmlns:l="sap.ui.layout">
<ColumnListItem>
<cells>
<Text text="{path: 'oDataModel>inventoryID'}" />
<Text text="{parts:[{path:'oDataModel>fName'}, {path:'oDataModel>lName'}], formatter:'.nameFormater'} " />
<Text text="{oDataModel>purchasedAt}" />
<RatingIndicator maxValue="5" class="sapUiSmallMarginBottom" value="{
path: 'oDataModel>condition', formatter: '.conditionFormat'}"
change="onRatingPress"/>
<Text text="{path:'oDataModel>price', formatter: '.priceFormatter'}" />
<Button text="Remove"
icon="sap-icon://delete"
press="onRowDelete"
class="appBtn"/>
</cells>
</ColumnListItem>
该表显示了正确的行数和列数,但数据错误。它将为每一行显示集合中的最后一个结果。当表格增长时,表格将显示集合中的下一个最后结果。有人知道我怎么解决这个问题吗
答:原来我在对一个没有主键的视图进行OData调用。渲染会出现小故障,因此仅显示出于某种原因的最后一个结果 我怀疑将片段实例化一次(!)作为模板可能会破坏这里的秩序;因为它只实例化一次,所以您可以继续使用对相同控件的引用,这将最终显示模型中的最后一项 最好使用函数并返回ColumnListItem控件的新实例
编辑 我在下面提供了一个工作示例(单击“运行代码片段”查看它是否工作) 因为使用片段作为聚合模板似乎有点不合我的口味,下面是我将如何进行绑定 有几点:
列
和列列表项
直接在视图中定义为聚合。不需要单独的模板、片段或工厂函数,所有内容都在视图中(应该在的位置;)输入
字段发生变化时应用sap.ui.controller(“view.initial”{
onInit:function(){
var model=new sap.ui.model.json.JSONModel();
model.setData({
filterValue:4,
someArray:[{“itemID”:4,“inventoryID”:323,“memberID”:440,“fName”:“Victoria”,“lName”:“Hutchings”,“condition”:4,“purchasedAt”:“1992-01-18T21:53:09.291Z”,“price”:96},{“itemID”:1,“inventoryID”:83,“memberID”:83,“fName”:“Connie”,“lName”:“Monuteaux”,“condition”:4,“purchasedAt”:“2001-07-28-01:05:35.935Z”,“price”:99},{“itemID”:3,“inventoryID”:591,“memberID:399,”fName:“Cecelia”,“lName:“Peschke”,“条件”:1,“purchasedAt:“2063-07-03T22:41:15.159Z”,“价格”:17},{“项目ID”:8,“库存ID”:523,“memberID”:417,“fName:“Ginger”,“lName:“Vasquez”,“条件”:5,“purchasedAt:“1967-02-27T09:24:18.631Z”,“价格”:67},{“项目ID”:6,“库存ID”:310,“memberID”:573,“fName:“乔治”,“lName”,“迪克森”条件:4,“purchasedAt”:“2050-05-04T12:46:00.850Z”,“价格”:6},{“项目ID”:2,“库存ID”:749,“成员ID”:887,“fName”:“Subha”,“lName”:“Gunn”,“条件”:3,“purchasedAt”:“1952-04-08T01:51:08.544Z”,“价格”:40},{“项目ID”:7,“库存ID”:46,“成员ID”:546,“fName”:“Delena”,“lName”:“Ramirez”,“条件”:4,“purchasedAt”:“2051-04-0510:63Z”,“价格”“:62},{“itemID”:0,“inventoryID”:734,“memberyid”:775,“fName”:“Bola”,“lName”:“Shah”,“condition”:4,“purchasedAt”:“1986-09-17T23:29:15.318Z”,“price”:97},{“itemID”:8,“inventoryID”:550,“memberyid”:546,“fName”:“kassandra”,“lName”:“Cowen”,“condition”:4,“purchasedAt”:“1954-11-259:37:03.604Z”,“price”:83},{“itemID”:699,“inventoryID”:469,“memberyid”fName,“fName”:“四月”、“lName”:“加西亚”,“条件”:2,“采购数据”:“1909-07-07T21:40:21.919Z”,“价格”:1},{“项目ID”:0,“库存ID”:777,“成员ID”:88,“fName”:“苏珊娜”,“lName”:“福克斯”,“条件”:5,“采购数据”:“2026-04-04T13:18:20.715Z”,“价格”:21},{“项目ID”:5,“库存ID”:401,“成员ID”:956,“fName”:“安吉洛”,“lName”:“斯佩利奇”,“条件”:2,“采购数据”“2044-10-13T19:17:29.321Z”,“价格”:51},{“项目ID”:10,“库存ID”:799,“成员ID”:216,“fName”:Sonny,“lName”:“Gergely”,“条件”:3,“purchasedAt”:“1947-01-07T01:12:29.721Z”,“价格”:33},{“项目ID”:4,“库存ID”:175,“成员ID”:552,“fName”:“Sara”,“lName”:“Trautman”,“条件”:0,“purchasedAt”:“1992-08-17T22:24:36.721Z”,“价格”:52,{inventoryID:488,“memberID:580,”fName:“Penny”,“lName:“Bettencourt”,“condition:”4,“purchasedAt:”1915-04-25T05:17:05.226Z,“price:”52},{“itemID:7,”inventoryID:713,“memberID:812,”fName:“Greg”,“lName:”Mulvehill”,“condition:”0,“purchasedAt:”1970-05-03T22:47:42.502Z,“price:”50},{“itemID:1,“inventoryID:”978,“memberID:”401,“fName:”Kathe“,”lName:“Krugel”,“condition:”0,“purchasedAt:”1942-02-09T21:40:24.584Z,“price:”96},{“itemID:”2,“inventoryID:”686,“memberID:”216,“fName:”Jody”,“lName:”Gage”,“condition:”5,“purchasedAt:”2010-11-25T16:43:41.214Z,“price:”86},{“itemID:”4,“inventoryID:”686,“memberID:”110,“fName:”Shelly:”lName:“Epfel”,“condition:”1,“purchasedAt:”1989-06-29T04:58:29.195Z,“价格”:37},{“itemID”:4,“inventoryID”:977,“memberID”:350,“fName”:“LaDagea”,“lName”:“Doerfler”,“condition”:1,“purchasedAt”:“1959-03-18T15:10:34.816Z”,“价格”:2}]
});
sap.ui.getCore().setModel(model);
},
onAfterRendering:函数(){
this.applyFilter();
},
applyFilter:function(){
var-allFilter=[];
allFilter.push(新的sap.ui.model.Filter(“itemID”,sap.ui.model.FilterOperator.EQ,this.getView().getModel().getProperty(“/filterValue”));
var oTable=this.getView().byId(“myTable”);
var oBinding=oTable.getBinding(“项目”);
oBinding.filter(allFilter,sap.ui.model.FilterType.Application);
}
});
var oView=sap.ui.xmlview({
viewContent:jQuery(“#view1”).html()
})
oView.placeAt(“uiArea”);
mContexts
/Customers('ALFKI'): context
/Customers('BLAUS'): context
/Customers('FRANK'): context
...