当我尝试将此表的列绑定到json数据时,我有一个表。它可以在我的一个表格和其他表格中使用,但它不会显示任何内容。我检查了内容和获取json数据的方式,并且在所有表中都是完全相同的。
oTable.addColumn(new sap.ui.table.Column({
label: new sap.ui.commons.Label({text: "Names"}),
template:
new sap.ui.commons.Link({
text:"{name}",
})
}));
显示内容的表位于shell中,而其他表中没有显示任何内容位于sap.ui.ux3.ThingGroup内。我想知道我没有看到绑定的原因是不是因为ThingGroup?因为只要我将sap.ui.commons.Link更改为sap.ui.commons.TextView就行了。
我的代码的缩减版本是:
addLayerTable: function(){
var jsonData1 = {
"layers" : []
};
$.getJSON(URI, {}).done(function(data) {
if(data.layers !== undefined){
$.each(data.layers, function(i, field) {
jsonData1.layers.push({
"name" : field
});
});
}
layerDetailPage(jsonData1);
}).fail(function() {
alert("Error while reading layers Data or layers do not exist");
});
var oTable = new sap.ui.table.Table({
rows:{
path:"/layers",
},
width: "900px",
visibleRowCount: 10,
navigationMode : sap.ui.table.NavigationMode.Paginator
});
oTable.addColumn(new sap.ui.table.Column({
label: new sap.ui.commons.Label({text: "Names"}),
template:
new sap.ui.commons.Label({
text:"{name}"
})
}));
function layerDetailPage(layerData){
var oModel = new sap.ui.model.json.JSONModel();
oModel.setData(layerData);
sap.ui.getCore().setModel(oModel, "layerModel");
oTable.setModel(oModel);
};
var oFC1 = new sap.ui.ux3.ThingGroup();
oFC1.addContent(oTable);
return oFC1;
}
只要将sap.ui.commons.Label更改为TextView,名称就会变为可见。但此刻什么都没有。有趣的是,如果我在我的表中添加一个按功能,并尝试获取表中行的名称,虽然它不可见但它仍然有效。