2012-12-04 41 views
1

即时尝试使用新的SAPUI5开发工具包做一些事情。我发现了一些我想要尝试的代码,但碰巧我的表总是空的。我试图弄清楚自己,但我不能这样做。这里是我的代码:这张表为什么是空的?

 
    var oTable = new sap.ui.table.DataTable(); 

    oTable.setTitle("My Table"); 

    oTable.addColumn(new sap.ui.table.Column({ 
     label: new sap.ui.commons.Label({text: "Agency Name"}), 
     template: new sap.ui.commons.TextView().bindProperty("text", "NAME"), 
     sortProperty: "NAME" 
    })); 

    [...More Columns...] 

    oTable.addColumn(new sap.ui.table.Column({ 
     label: new sap.ui.commons.Label({text: "Currency"}), 
     template: new sap.ui.commons.TextField().bindProperty("value", "CURRENCY"), 
     sortProperty: "CURRENCY", 
    })); 

    var uri = "http://gw.esworkplace.sap.com/sap/opu/sdata/iwfnd/RMTSAMPLEFLIGHT"; 

    var user = "[email protected]"; 
    var pw = "ESW4GW"; 

    var oModel = new sap.ui.model.odata.ODataModel(uri,false,user,pw); 
    oTable.setModel(oModel); 
    oTable.bindRows("TravelagencyCollection"); 
    oTable.placeAt("dataTable"); 

    

我在Eclipse和Web服务器上都试过这个代码,两者都有相同的空表结果。我发现了一个暗示,用--disable-web-security在chrome中运行它,但仍然没有任何反应。我究竟做错了什么?


感谢您的提示。没有国旗我得到一个401代码和国旗我得到一个200 GET确定,但仍然表是空的...

并且还与新的sap.ui.commons.TextView({文本:'{键}'})我得到一个空表。

+0

检查中铬与开发工具开放(控制移我在windows),并在“网络”,如果AJAX调用失败见。你不能在浏览器中做一个跨域的Ajax调用(这就是--disable-web-security标志试图解决的问题,但主机可能会拒绝它) – Jorg

+0

我没有使用'bindProperty',而是继 'new sap.ui.commons.TextView({text:'{key}'})'。它适用于我。 –

+0

我删除了ABAP标签,因为上面的代码绝对不是ABAP。我对SAPUI5一​​无所知,因此尽管第一眼看起来代码看起来像Javascript,但我会留下一些适当的标签给知道他们在做什么的人。 – Philipp

回答

0

可能有一些情侣原因

  • 您正在跨域AJAX请求和服务器拒绝它,解决它尝试使用代理服务器,并在本地使用Tomcat服务器,或将您的sapui5代码ABAP服务器上
  • oTable.bindRows(“TravelagencyCollection”);可能会生成错误的请求,请改用oTable.bindRows(“/ TravelagencyCollection”);
  • 如果上述两个条件都没有引发任何错误,请尝试通过谷歌开发人员工具(网络)来检查来自NW的数据是否来自您。
0

更换

oTable.bindRows("TravelagencyCollection"); 

通过

oTable.bindRows("*/*TravelagencyCollection");