我在hana DB上有一个表,将其公开为xsodata服务
service {
"schema"."table" as "OrderItem";
}
将ui5应用显示为
var Model = new sap.ui.model.json.JSONModel("../../services/myexp.xsodata/OrderItem", false);
sap.ui.getCore().setModel(Model,'myitem');
var oTemplate = new sap.m.ColumnListItem({
cells : [
new sap.m.Text({text : "{myitem>Component}"}),
new sap.m.Text({text : "{myitem>Customer}"}),
new sap.m.Text({text: "{myitem>Required Date}"}),
new sap.m.Text({text : "{myitem>Status}"})
]
});
oTable.bindItems("myitem>/d/results", oTemplate);
现在和图像一样,我在页面页脚添加了两个按钮
footer: new sap.m.Bar({
contentRight: [
new sap.m.Button({text: "Accept",type: sap.m.ButtonType.Accept}),
new sap.m.Button({text: "Reject",type: sap.m.ButtonType.Reject})
]
})
现在我的问题是如何在点击任何按钮时更新状态列,例如,如果我按接受状态将更改为已接受并且与拒绝相同。 (更新模型。我猜hana表会自动更新,因为tyhe表被公开为odata模型)
请注意,此表只有一行。
谢谢
答案 0 :(得分:0)
你没有使用JsonModel获得这种功能。只有使用OdataModel,您才能获得开箱即用的功能。
学家
答案 1 :(得分:0)
您可以通过按钮的按下事件调用功能:
footer: new sap.m.Bar({
contentRight: [
new sap.m.Button({
text: "Accept",
type: sap.m.ButtonType.Accept,
press: oController.pressAcceptButton}),
new sap.m.Button({
text: "Reject",
type: sap.m.ButtonType.Reject})
]
})
并在控制器中回复此新闻事件:
pressAcceptButton: function(oEvent){
//perform transaction and refresh models
}