Odata sapui5表仅显示相同的记录
我创建了一个Web服务,并尝试在SAPUI5中使用oData协议绑定数据 我创建了一个表:Odata sapui5表仅显示相同的记录,odata,sapui5,sap-gateway,Odata,Sapui5,Sap Gateway,我创建了一个Web服务,并尝试在SAPUI5中使用oData协议绑定数据 我创建了一个表: createContent : function(oController) { jQuery.sap.require("sap.ui.table.Table"); //Create table control with properties var oTable = new sap.ui.table.Table({ width : "100%"
createContent : function(oController) {
jQuery.sap.require("sap.ui.table.Table");
//Create table control with properties
var oTable = new sap.ui.table.Table({
width : "100%",
rowHeight : 50,
title : "Lst of Items",
selectionMode : sap.ui.table.SelectionMode.None
});
oTable.addColumn(new sap.ui.table.Column({
label : new sap.ui.commons.Label({
text : "PO Number"
}),
template : new sap.ui.commons.TextView({
text : "{PoNumber}"
}),
}
));
oTable.addColumn(new sap.ui.table.Column({
label : new sap.ui.commons.Label({
text : "Item"
}),
template : new sap.ui.commons.TextView({
text : "{PoItem}"
}),
}
));
//Filter values for a certain PO
var aFilter = [];
aFilter.push( new sap.ui.model.Filter("PoNumber", sap.ui.model.FilterOperator.EQ, "4500000043") );
oTable.bindRows({
path: "/PurchaseOrderItemCollection",
filters: aFilter
});
return oTable;
}
输出应如下所示:
PONumber POItem
4500000043 0010
4500000043 0020
但我得到的是:
PONumber POItem
4500000043 0020
4500000043 0020
因此,它显示最后一项两次,而不显示第一项。如果我在web服务代码中添加了断点,那么它将正确填充
数据模型按以下方式创建:
var oModel = new sap.ui.model.odata.ODataModel(sServiceUrl, false, "user", "passw");
sap.ui.getCore().setModel(oModel);
我的理解是,集合中的每个实体/条目都应该有一个唯一的id
…
。
在我的例子中,返回的集合没有为实体设置ID。因此绑定ui元素会找到多个具有相同id(在本例中为空id)的对象,并最终显示它最后找到的值
即使id在所有实体中都相同,也应采用相同的方法
如果你还没有发现问题所在,希望它能帮助你
谢谢,我遇到了这个问题。问题在于您的数据模型。确保实体的PO编号和PO项目都标记为键。刷新任何元数据缓存,确保两个属性都显示为键,然后重试。它应该会起作用 谢谢 克里希纳可能的副本