我正在尝试使用新的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");