sapui5 - SAPUI5 将表绑定从 ODataModel 更改为 JSONModel
问题描述
我创建了一个表并将其ODataModel
用于数据绑定。一切正常。模板定义了应该绑定到列的属性。
但是,在某些时候,我需要将 a 绑定JSONModel
到表而不是ODataModel
(因为应该调整数据,但实际上不应在后端更新它)。数据在开始时应该是一样的。
到目前为止,我创建了服务请求以获取所有数据。然后我将它添加到JSONModel
(使用setData
函数)。
现在我想知道如何替换这两个模型。甚至可以更改绑定(和表属性)以便JSONModel
绑定还是我需要创建一个新表?
我感谢每一个提示!
解决方案
您可以使用setModel成员函数将新的 JSON 模型分配给现有控件:
oTable.setModel(yourNewJSONModel);
如果您已命名模型(因此,您的绑定看起来像“{modelName>/property}”那么您应该以这种方式分配新模型:
oTable.setModel(yourNewJSONModel, "modelName");
可能您必须根据您使用的表类型(sap.ui.table.Table 或 sap.m.Table)重新绑定行(或项目)聚合:
oTable.bindRows({
path: "/somePropertyPath",
model: "modelName"
});
如果行的所有字段名称都相同,那么它应该可以工作。
推荐阅读
- mysql - Zsh 说我的 shell 脚本中有一个无与伦比的 ' 。它在哪里?
- php - 如何在php中使html表格行相等
- verilog - Verilog/SystemVerilog语法如何使用参数来指示比特流长度> 32位?
- javascript - 带有 JSON 参数的 JavaScript fetch()
- kotlin - Kotlin:查找与正则表达式匹配的文件的第一行,并返回捕获的值
- java - 有没有办法在使用 for-each 循环迭代后验证一个键是否等于一个值
- jenkins - svn jenkins 问题:org.tmatesoft.svn.core.SVNException: svn: is not a working copy
- r - R中没有for循环的高效并行处理
- docker - docker-compose 构建旧版本的应用程序
- apache-flink - 在 keyBy() 和 sum() 之后执行 max()