我创建了一个 Web 服务并尝试使用 SAPUI5 中的 oData 协议(protocol)绑定(bind)数据。
我创建了一个表:
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);
最佳答案
我也遇到过这种情况。问题出在你的数据模型上。确保实体的采购订单编号和采购订单项目都标记为键。刷新所有元数据缓存,确保两个属性都显示为键,然后重试。它应该可以工作。
谢谢 克里希纳
关于odata - sapui5表只显示相同的记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17724872/