为什么这个sap.ui.table.DataTable是空的

  • 本文关键字:DataTable table ui sap sapui5
  • 更新时间 :
  • 英文 :


我正在尝试使用新的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 和 Web 服务器上尝试了这段代码,两者都得到了相同的空表结果。我找到了一个提示,可以在带有标志 --disable-web-security的 chrome 中运行它,但仍然没有任何反应。我做错了什么?

<小时 />

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

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

可能有几个

原因

  • 您正在发出跨域 ajax 请求并且服务器拒绝它以解决它,尝试在本地使用代理并使用 tomcat 服务器或将您的 sapui5 代码放在 ABAP 服务器上
  • oTable.bindRows("TravelagencyCollection");
  • 可能会生成错误的请求,因此请使用 oTable.bindRows("/TravelagencyCollection");
  • 如果上述两个条件都没有抛出任何错误,请尝试检查来自NW的数据是否通过Google开发人员工具(网络)发送给您。

替换

oTable.bindRows("TravelagencyCollection");

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

最新更新