如何在按钮点击时更新表格或模型

时间:2015-12-23 19:53:53

标签: odata sapui5 hana

我在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);

工作正常 enter image description here

现在和图像一样,我在页面页脚添加了两个按钮

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模型)

请注意,此表只有一行。

谢谢

2 个答案:

答案 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
}