SAPUI5 更改 table 从 ODataModel 到 JSONModel 的绑定
SAPUI5 change table binding from ODataModel to JSONModel
我创建了一个 table 并使用了一个 ODataModel
进行数据绑定。一切正常。该模板定义了应该绑定到列的属性。
然而,在某些时候我需要将 JSONModel
绑定到 table 而不是 ODataModel
(因为数据应该被调整但实际上不应该在后端)。一开始的数据应该是一样的。
到目前为止,我创建了获取所有数据的服务请求。然后我将它添加到 JSONModel
(使用 setData
函数)。
现在我想知道如何替换这两个模型。甚至可以更改绑定(和 table 属性)以便绑定 JSONModel
还是我需要创建一个新的 table?
感谢每一个提示!
您可以使用 setModel 成员函数将新的 JSON 模型分配给现有控件:
oTable.setModel(yourNewJSONModel);
如果您已命名模型(因此,您的绑定看起来像“{modelName>/属性}”,那么您应该以这种方式分配新模型:
oTable.setModel(yourNewJSONModel, "modelName");
可能您必须根据您使用的 table 类型(sap.ui.table.Table 或 sap.m.Table)重新绑定行(或项目)聚合:
oTable.bindRows({
path: "/somePropertyPath",
model: "modelName"
});
如果行的所有字段名称都相同,那么它应该可以工作。
我创建了一个 table 并使用了一个 ODataModel
进行数据绑定。一切正常。该模板定义了应该绑定到列的属性。
然而,在某些时候我需要将 JSONModel
绑定到 table 而不是 ODataModel
(因为数据应该被调整但实际上不应该在后端)。一开始的数据应该是一样的。
到目前为止,我创建了获取所有数据的服务请求。然后我将它添加到 JSONModel
(使用 setData
函数)。
现在我想知道如何替换这两个模型。甚至可以更改绑定(和 table 属性)以便绑定 JSONModel
还是我需要创建一个新的 table?
感谢每一个提示!
您可以使用 setModel 成员函数将新的 JSON 模型分配给现有控件:
oTable.setModel(yourNewJSONModel);
如果您已命名模型(因此,您的绑定看起来像“{modelName>/属性}”,那么您应该以这种方式分配新模型:
oTable.setModel(yourNewJSONModel, "modelName");
可能您必须根据您使用的 table 类型(sap.ui.table.Table 或 sap.m.Table)重新绑定行(或项目)聚合:
oTable.bindRows({
path: "/somePropertyPath",
model: "modelName"
});
如果行的所有字段名称都相同,那么它应该可以工作。