SAPUI5 OData v4-如何更改模型(属性值)

2020-09-08 00:13发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)大家好, 我是SAPUI5入门...

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


大家好,

我是SAPUI5入门者,我有一个希望可以轻松解决的问题,但现在我不知道如何解决。

我的要求:
我正在显示项目列表,该列表来自OData V4模型。 假设这些是实体字段名称/属性:FieldID,SomeText,Status

该表提供单个选择,下面是一个按钮,该按钮应触发所选行的操作。 用户单击该按钮后,我想更改"状态"-属性并将其发送到后端。 我已经知道当我使用输入字段时如何通过Odata V4将更新发送到后端。 我只是不知道如何在JavaScript函数中以编程方式更改模型属性,而无需将属性链接到输入字段控件。

单击按钮后,我将调用" Press"事件:

 onButtonPressed:函数(oEvent){
   var oBinding = this.byId(" myTableID")。getBinding(" rows"),
       aContext = oBinding.getContexts(),
       oContext = aContext [0],//目前已硬编码(返回第一行)
       sStatus ="已接受"; //状态属性的新值
      
       oContext。?????
 }
 

我必须编写什么代码才能更改模型中的"状态"-属性? 上下文对象可以帮助我实现这一目标是否正确?

亲切问候
马克·安德烈

P.S .:我在API参考中看到,类 sap.ui.model.odata.v4.Context 提供了" requestProperty "方法。 听起来很有趣,但我不知道如何使用该方法访问该属性,因为它仅返回Promise。 我对Promises不熟悉。 我认为我可以为其附加"成功"方法和"错误"方法,但是我仍然不知道该如何获取和操纵该属性。

6条回答
clasier
2020-09-08 00:28

嗨Rajvardhan,

感谢您的快速响应,但不幸的是,这没有用。 方法getBindingContext返回未定义。

我已经可以访问OData模型,绑定和上下文对象,并且可以对数据本身进行"读取"访问。 问题在于,在OData v2中,模型(sap.ui.model.odata.v2。 ODataModel )具有setProperty方法,但该方法在OData v4模型类(sap.ui.model.odata.v4.sap.ui.model.odata.v4中不存在。 ODataModel )。


SAP帮助说:" OData V4模型仅支持使用绑定进行数据访问,不提供对数据的任何直接访问。"

因此,我认为必须使用这些类之一来更改模型中的属性:

-sap.ui.model.odata.v4。 ODataListBinding

-sap.ui.model.odata.v4。上下文

我是否完全朝错误的方向前进? 看不到任何会改变属性的方法。

亲切问候
MarkAndré

一周热门 更多>