我想在这个sapui5 explored sample中使用智能表,但问题是我有一个OData模型,该示例仅显示我们如何处理与模拟数据的绑定,而且我也不了解元数据。 xml文件。我猜oData模型也有自己的元数据文档。这是控制器中的代码:
this.DataPath = "QuarterPerformanceSet";
var oModel = new sap.ui.model.odata.ODataModel(model.Config.getServiceUrl(), true, model.user, password);
oModel.setCountSupported(false);
oSmartTable.setModel(oModel);
oSmartTable.setEntitySet(this.DataPath);
但它不起作用。我收到了这个错误:
无法从./Component-changes.json加载Component-changes.json。检查“找不到文件”或解析错误。原因:未找到 -
getChanges'失败: -
我怎样才能使用我的odata模型设置entitySet?
我的观点:
<smartTable:SmartTable id="idSmartTable" tableType="Table"
useExportToExcel="true" useVariantManagement="false"
useTablePersonalisation="true" header="Line Items" showRowCount="true"
persistencyKey="SmartTableAnalytical_Explored" enableAutoBinding="true"/>
如果有人可以提供帮助,请提前感谢。
更新2:我根据此discussion
重新绑定表格this.DataPath = "QuarterPerformanceSet";
var oModel = new sap.ui.model.odata.ODataModel(model.Config.getServiceUrl(), true, model.user, password);
oModel.setCountSupported(false);
var oSmartTable = this.getView().byId("idSmartTable");
oSmartTable.setModel(oModel);
oSmartTable.setEntitySet(this.DataPath);
oSmartTable.rebindTable();
伤感地说,但还是我得到同样的错误。
答案 0 :(得分:1)
您需要传递实体集的名称,而不是模型实例。例如,如果您有一个实体集客户定义,您只需:
oSmartTable.setEntitySet("Customers");
或将属性entitySet添加到表声明中。
<smartTable:SmartTable id="idSmartTable" entitySet="ENTITY_SET" .../>