将OData绑定到XML视图

2020-09-18 22:08发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


我有一个简单的要求,即从后端获取OData来填充XML视图上的sap.m.select。 如果我在应用程序中使用硬代码json数组,则此方法有效。 或者如果我使用JS视图而不是XML视图。

在我的controller.js中,我有:

var sServiceUrl ="/img/sap/opu/odata/sap/ZRE_FACILITY_SRV/";
var oModel = new sap.ui.model.odata.ODataModel(sServiceUrl,true);

OData。 request
({
requestUri:"/img/sap/opu/odata/sap/ZRE_FACILITY_SRV/BusEntitySet",
方法:" GET",
标头:
{
" X- Requested-With":" XMLHttpRequest",
" Content-Type":" application/atom + xml",
" dataType":" json",
" DataServiceVersion":" 2.0"
}
},
函数(oData,响应){

var oModel1 = new sap.ui.model.json.JSONModel();
oModel1.setSizeLimit(oData.results.length );
oModel1.setData(oData.results);
var oSelect = this.getView()。byId(" SelectID");
oSelect.setModel(oModel1," appData1");


//oModel1.setProperty("/img/modelData",oData.results);
//var oSelect = this.getView()。byId(" SelectID");
//var oTemplate = new sap.ui.core.Item({key:" {Swenr}",text:" {Xwetext}"});
//oSelect.setModel(oModel1);
//oSelect.bindAggregation( " items","/img/modelData",oTemplate);

},
函数(err){alert("获取数据时出错");
});

然后在我的view.xml中

<标签文本="业务实体"/>
<选择id =" SelectID"项目=" {路径:'appData1>/BusEntitySet'}">
Swenr}" text =" {appData1> Xwetext}"/>

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


我有一个简单的要求,即从后端获取OData来填充XML视图上的sap.m.select。 如果我在应用程序中使用硬代码json数组,则此方法有效。 或者如果我使用JS视图而不是XML视图。

在我的controller.js中,我有:

var sServiceUrl ="/img/sap/opu/odata/sap/ZRE_FACILITY_SRV/";
var oModel = new sap.ui.model.odata.ODataModel(sServiceUrl,true);

OData。 request
({
requestUri:"/img/sap/opu/odata/sap/ZRE_FACILITY_SRV/BusEntitySet",
方法:" GET",
标头:
{
" X- Requested-With":" XMLHttpRequest",
" Content-Type":" application/atom + xml",
" dataType":" json",
" DataServiceVersion":" 2.0"
}
},
函数(oData,响应){

var oModel1 = new sap.ui.model.json.JSONModel();
oModel1.setSizeLimit(oData.results.length );
oModel1.setData(oData.results);
var oSelect = this.getView()。byId(" SelectID");
oSelect.setModel(oModel1," appData1");


//oModel1.setProperty("/img/modelData",oData.results);
//var oSelect = this.getView()。byId(" SelectID");
//var oTemplate = new sap.ui.core.Item({key:" {Swenr}",text:" {Xwetext}"});
//oSelect.setModel(oModel1);
//oSelect.bindAggregation( " items","/img/modelData",oTemplate);

},
函数(err){alert("获取数据时出错");
});

然后在我的view.xml中

<标签文本="业务实体"/>
<选择id =" SelectID"项目=" {路径:'appData1>/BusEntitySet'}">
Swenr}" text =" {appData1> Xwetext}"/>

付费偷看设置
发送
2条回答
樱桃小丸子0093
1楼-- · 2020-09-18 22:33

嗨,

如果您正在使用SAPUI5并调用odata服务,则可以使用模型的所有方法。

var oModel = new sap.ui.model.odata.ODataModel(sServiceUrl,true);

ODataModel具有自己的读取方法,(此外,我强烈建议您使用 OData.v2 ),则读取请求的示例为:

 var oModel = new sap.ui.model.odata.v2.ODataModel(sServiceUrl,true);
 oModel.read("/img/EntitySet",{
      成功:功能(oData){
      alert(" Success"); 
//... }, 错误:函数(oEvent){ //.. } });

尝试一下:)

希望它会帮助

梦想连接
2楼-- · 2020-09-18 22:27

这似乎是访问oData的一种非常古老的方法。 为什么不使用manifest.json实例化oData模型...您可以执行到xml视图的绑定

一周热门 更多>