【问题标题】:SAPUI5 change table binding from ODataModel to JSONModelSAPUI5 将表绑定从 ODataModel 更改为 JSONModel
【发布时间】:2019-07-09 12:10:58
【问题描述】:

我创建了一个表并使用ODataModel 进行数据绑定。一切正常。模板定义了应该绑定到列的属性。

但是,在某些时候,我需要将 JSONModel 绑定到表而不是 ODataModel(因为应该调整数据,但实际上不应在后端更新)。数据在开始时应该是一样的。

到目前为止,我创建了服务请求以获取所有数据。然后我将它添加到JSONModel(使用setData 函数)。

现在我想知道如何替换这两个模型。是否甚至可以更改绑定(和表属性)以便绑定 JSONModel 还是我需要创建一个新表?

感谢每一个提示!

【问题讨论】:

  • 那你为什么不立即将数据加载到表的 JSONModel 中呢?
  • 我目前正在使用 ODataModel,因为我可以逐步加载数据(使用日益增长的阈值属性)。 JSONModel 仅在一些不常用的可选情况下是必需的。因此,如果真的有必要,我只想使用JSONModel(没有$top请求参数)......

标签: sapui5


【解决方案1】:

您可以使用 setModel 成员函数将新的 JSON 模型分配给现有控件:

oTable.setModel(yourNewJSONModel);

如果您已命名模型(因此,您的绑定看起来像“{modelName>/property}”,那么您应该以这种方式分配新模型:

oTable.setModel(yourNewJSONModel, "modelName");

可能您必须根据您使用的表类型(sap.ui.table.Table 或 sap.m.Table)重新绑定行(或项目)聚合:

oTable.bindRows({
   path: "/somePropertyPath",
   model: "modelName"
});

如果行的所有字段名称都相同,那么它应该可以工作。

【讨论】:

  • 谢谢! oTable.bindItems("modelName>/results", oTemplate); 对我有用(oTemplate = 表格模板)。
猜你喜欢
  • 2014-06-25
  • 1970-01-01
  • 2017-05-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多