我需要在表格中显示一个列表。此列表应在客户端进行过滤,因此我需要将OData模型复制到本地JSON模型中。
OData模型如下所示:
OData模型
我能够显示" / ZcountWerksSet"使用以下代码在表中列出(来自OData模型):
oSearchTable.bindAggregation("items", "/ZcountWerksSet", new sap.m.ColumnListItem({
cells : [
new sap.m.Text({
text : "{Name1}"
}),
new sap.m.Text({
text : "{Werks}"
})
]
}));
然后我将其复制到这样的JSON模型中:
var oModel = this.getView().getModel();
var oModelJson = new sap.ui.model.json.JSONModel();
oModel.read("/ZcountWerksSet", {
success: function(oData, response) {
oModelJson.setData(oData);
sap.ui.getCore().setModel(oModelJson, "oJSONModel");
alert("Success!");
},
error: function(response) {
alert("Error");
}
});
然后模型看起来像这样
JSON模型
尝试在使用以下代码的表中显示相同的列表(这次来自JSON模型)不起作用:
oSearchTable.bindAggregation("items", "{oJSONModel>/}", new sap.m.ColumnListItem({
cells : [
new sap.m.Text({
text : "{oJSONModel>Name1}"
}),
new sap.m.Text({
text : "{oJSONModel>Werks}"
})
]
}));
如何在表格中显示相同的数据,但这次只能从JSON模型中显示?
任何想法我做错了什么?
答案 0 :(得分:0)
您需要采用绑定路径{oJSONModel>/results}
,因为不同的绑定实现用于JSONModel。
答案 1 :(得分:0)
var oSearchTable = sap.ui.getCore().byId("searchTableId");
var oModel = this.getView().getModel();
var oModelJson = new sap.ui.model.json.JSONModel();
oModel.read("/ZcountWerksSet", {
success: function(oData, response) {
oModelJson.setData(oData);
var oRow = new sap.m.ColumnListItem({
cells : [
new sap.m.Text({
text : "{Name1}"
}),
new sap.m.Text({
text : "{Werks}"
})
]
});
oSearchTable.setModel(oModelJson);
oSearchTable.bindItems("/results", oRow);
sap.ui.getCore().setModel(oModelJson, "oJSONModel");
}
});