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 = "GW@ESW";
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 和网络服务器上尝试了这段代码,两者都具有相同的空表结果。我找到了在带有标志的 chrome 中运行它的提示, --disable-web-security但仍然没有任何反应。我究竟做错了什么?


感谢您的提示。没有标志,我得到一个 401 代码。有了标志,我得到了 200 GET OK,但桌子仍然是空的。

还有new sap.ui.commons.TextView({ text: '{key}' }),我得到一张空桌子。

4

2 回答 2

0

可能有几个原因

  • 您正在发出跨域 ajax 请求并且服务器拒绝它以解决它尝试使用代理并在本地使用 tomcat 服务器或将您的 sapui5 代码放在 ABAP 服务器上
  • oTable.bindRows("TravelagencyCollection"); 可能会产生错误的请求,因此请改用oTable.bindRows("/TravelagencyCollection");
  • 如果上述两种情况都没有抛出任何错误,请尝试通过谷歌开发者工具(网络)检查来自 NW 的数据是否发送给您。
于 2013-06-17T12:30:09.017 回答
-1

代替

oTable.bindRows("TravelagencyCollection");

经过

oTable.bindRows("*/*TravelagencyCollection");
于 2014-01-30T12:26:58.497 回答