点击此处---> 群内免费提供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不熟悉。 我认为我可以为其附加"成功"方法和"错误"方法,但是我仍然不知道该如何获取和操纵该属性。
你们已经有了答案吗? 我也有类似的情况
找到解决方案后,我将发布解决方法。 现在我仍然不知道该怎么做。
嗨,马克,
在新闻发布会内部,您只需尝试以下代码:
oEvent.getSource()。getBindingContext("您的型号名称").setProperty("/img/property-name"," property-value");
希望这会有所帮助,
谢谢
此致
Rajvardhan Thakare
嗨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é
下面尝试,应该可以。
不幸的是,这不起作用。 OData V4模型类中没有" setProperty"方法。
一周热门 更多>