2017-02-24 47 views
1

我需要通过Odata绑定到网格表将动态值输入参数传递到计算视图。我可以从OData的获取计算视图结果与语法如下:SAPUI5在控制器中输入参数的odata绑定表

...odata/SERVICE.xsodata/DataSetParameters(P_END_DATE=datetime'2013/07/10',P_START_DATE=datetime'2013/07/03')/Results?$format=json 

我绑定网格表在控制器下面的代码(日期将是在实际应用中动态)

var gridTable = _this.getView().byId(gridName); 
gridTable.setModel(oModel); 
gridTable.bindRows("DataSet(P_END_DATE=datetime\'2013/07/10\',P_START_DATE=datetime\'2013/07/03\')", null, null, aFilters); 

在运行时我得到以下错误

No key property 'P_END_DATE' exists in type...No key property 'P_END_DATE' exists in type ...Collection 'DataSet' is not directly accessible....Collection 'DataSet' is not directly accessible.

谁能帮我知道什么是正确的语法由OData的结合传递参数?

回答

1

您公开的ODATA集合将在/结果处可用,并且不能通过/ DataSet直接访问。

NavigationProperty需要从参数化调用中检索结果。 所以,你将有你的结合路径更改为这个

DataSetParameters(param1=value,param2=value)/Results 

控制器代码gridTable.bindRows("DataSetParameters(P_END_DATE=datetime\'2013/07/10\',P_START_DATE=datetime\'2013/07/03\')/Results", null, null, aFilters);

+0

现在的OData网址可以正确建立和数据是指检索(在Chrome控制台检查),但数据不会在格表显示。在控制台中可以看到以下错误:2017-02-24 21:35:12.243000发生以下问题:HTTP请求失败400,请求错误,{“error”:{“code”:“”,“message”:{“lang “:”en-US“,”value“:”Collection'DataSet'is not directly accessible。“}}} - '我的网格绑定代码看起来像'gridTable.bindRows(”oDataModel>/DataSetParameters(P_END_DATE = datetime \ 2013/07/10 \',P_START_DATE = datetime \'2013/07/03 \')/ Results“,null,null,aFilters);' –

+0

oDataModel是您的数据模型吗?如果是这样,那么你没有正确地绑定 –

+0

是oDataModel是我在manifest.json中定义的模型名称。我对所有绑定遵循相同的语法,唯一的区别是没有参数。我是否需要将模型设置为table.setModel(oDataModel)和带有参数的数据集? –