2017-02-24 41 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)和帶有參數的數據集? –