Sapui5 使用OData服务的SmartTable绑定
我正在尝试将SmartTable与odata服务绑定,但该表显示“无数据”。我的代码如下:Sapui5 使用OData服务的SmartTable绑定,sapui5,Sapui5,我正在尝试将SmartTable与odata服务绑定,但该表显示“无数据”。我的代码如下: 在grid表中,我使用了如下数据绑定代码 rows=“{myODataModel>/datasetionataservice}” 有谁能为我提供这方面的示例代码吗?几乎所有与“SAPUI5标准”相关的资源都是SAPUI5应用程序。如果您搜索“智能表”,您也会找到示例 在那里,您将看到他们没有使用tableBindingPath属性,而是将模型绑定到SmartTable的父视图(请参见示例的Smart
在grid表中,我使用了如下数据绑定代码
rows=“{myODataModel>/datasetionataservice}”
有谁能为我提供这方面的示例代码吗?几乎所有与“SAPUI5标准”相关的资源都是SAPUI5应用程序。如果您搜索“智能表”,您也会找到示例 在那里,您将看到他们没有使用
tableBindingPath
属性,而是将模型绑定到SmartTable的父视图(请参见示例的SmartTable.controller.js
)。
然后,SmartTable足够智能,可以使用视图模型的指定entitySet
如果您在manifest.json
中将OData模型定义为标准模型,那么它应该已经绑定到视图,删除tableBindingPath
属性就可以了
- manifest.json
{ "_version": "1.1.0", "sap.app": { ... "dataSources": { "localService": { "uri": "/", "type": "OData", "settings": { "odataVersion": "2.0", "localUri": "localService/metadata.xml" } } }, ... "sap.ui5": { ... "models": { "": { "dataSource": "localService", "preload": true } } ... } }
enableautobbinding
属性设置为true
还要确保您的服务在$metadata
中至少公开所需的最低注释(如上面链接的SAPUI5示例所示)
(在$metadata
中定义,如果使用MockServer,请比较示例的metadata.xml
)metadata.xml:3938
oSmartTable.setModel(oModel)
。我已经相应地更新了我的答案。$metadata
可能出现了问题。现在我已经将model设置为SmartTablevar oSmartTable=this.getView().byId(“PersonSmartTable”);setModel(oModel)代码>但仍然没有显示任何数据。如果在浏览器urlHANA_SERVICES.xsodata?$metadata
中进行检查,我可以看到服务中的元数据,但我可能需要为注释做更多的工作。我不清楚我是否需要创建metadata.xml
文件,是否需要如您所示加载localy?请提供一些可以帮助我的链接/代码。请看一下我在回答中添加的$metadata
。只有在使用MockServer实例模拟OData服务(就像我正在做的那样)时,才能创建metadata.xml
。感谢您的帮助。您是说“只有在使用MockServer实例时才必须创建metadata.xml”,这是否意味着我使用SAP HANA server使用xsodata生成odata服务,因此我不需要创建metadata.xml
?
<!-- Default columns shown by Smart Table -->
<Annotations Target="<Namespace>.<Entity (NOT EntitySet)>" xmlns="http://docs.oasis-open.org/odata/ns/edm">
<Annotation Term="com.sap.vocabularies.UI.v1.LineItem">
<Collection>
<Record Type="com.sap.vocabularies.UI.v1.DataField">
<PropertyValue Property="Value" Path="<Property1>" />
</Record>
<Record Type="com.sap.vocabularies.UI.v1.DataField">
<PropertyValue Property="Value" Path="<Property2>" />
</Record>
</Collection>
</Annotation>
</Annotations>