我有一个OData连接,使用它可以读取一个实体集,其条件可以返回以下结构中的数据。数据位于根节点本身而不是对象数组中 -
然后我将此数据设置为JSON模型并将此模型绑定到我的oTable。 控制器中的代码如下所示 -
//Get data for the table
var oTabData = sap.ui.getCore().byId("MyTable");
var sServiceUrl = "http://example.com/sap/opu/odata/SAP/ZXX_SRV";
var oModel2 = new sap.ui.model.odata.ODataModel(sServiceUrl,true);
var oJsonModel = new sap.ui.model.json.JSONModel();
oModel2.read("/MyEntitySet(Myvar1='000001',Myvar2='abc')?
$format=json",null,null,true,function(oData,response){
oJsonModel.setData(oData);
});
oTabData.setModel(oJsonModel);
视图包含表格,绑定如下。忽略了其余的表声明代码以保持简短。使用id MyTable和所有正确的列声明为oTable的表 -
//Template to map the data to the respective column
var template = new sap.m.ColumnListItem({
id:"table_template",
type: "Navigation",
visible: true,
cells:[
new sap.m.Label({
text: "{/Myvar1}"
}),
new sap.m.Label({
text: "{/Myvar2}"
}),
new sap.m.Label({
text: "{/Myvar3}"
}),
new sap.m.Label({
text: "{/Myvar4}"
})
]
});
var oFilters = null;
oTable.bindItems("/",template,null,oFilters);
问题是 -
oModel2.read("/MyEntitySet?$format=json",null,null,true,function(oData,response)
)。
在后一种情况下,输出属于结果数组
绑定赋值是/ results,并且按预期正常工作。{/Myvar1}
如上所示)。但是使用这种技术它也创造了3
最初表中的默认空行。当上面的控制器
代码被执行,它填充表3 x 4次,即12行为a
单行输出。由于组织限制,我无法在此处输入原始代码。但这就是场景的方式。任何帮助将不胜感激。
感谢。
PS:没有使用任何会产生重复行的循环。
答案 0 :(得分:0)
您可以直接将表格绑定到ODataModel:
步骤: