表格中的格式化程序 - >标签

时间:2016-07-06 08:15:28

标签: sapui5 formatter

我想动态呈现包含不同类型列的表。

这是我的结构:

var cols = [{
  name: "{i18n>BidNumber}",
  value: "{Items>Dono}"
},{
  name: "{i18n>BidHaulier}",
  value: "{Items>BHaulier}"
},{
  name: "{i18n>BidHaulierName}",
  value: "{Items>BHaulierName}"
},{
  name: "{i18n>BidContact}",
  value: "{Items>Contact}"
},{
  name: "{i18n>BidPostingDate}",
  value: "{Items>BRunoffti}",
  formatter: "formatter.getDateShort"
}];

这是我构建列的循环

var colItems = new sap.m.ColumnListItem("colItems",{type:"Active"});                    
for(var i = 0; i < cols.length; i ++){
   var txtNAME = new sap.m.Label({
       text: {
            path: cols[i].value,
            formatter:  cols[i].formatter
        }
    });
    colItems.addCell(txtNAME); 
} 

在我的渲染视图中,我得到了空列,并且没有调用格式化程序。

这个没有格式化器的,对我有用:

var colItems = new sap.m.ColumnListItem("colItems",{type:"Active"});     
for(var i = 0; i < cols.length; i ++){
   var txtNAME = new sap.m.Label({text: cols[i].value });
   colItems.addCell(txtNAME); 
} 

1 个答案:

答案 0 :(得分:1)

如果你做这样的事情怎么办?

var colItems = new sap.m.ColumnListItem("colItems",{type:"Active"});     
for(var i = 0; i < cols.length; i ++){
   var txtNAME = new sap.m.Label({
       text: { path: cols[i].value,
               formatter: formatter.getDateShort
             }
   });
   colItems.addCell(txtNAME); 
}

在这种情况下,我认为你应该从cols数组中删除大括号:

var cols = [{
  name: "{i18n>BidNumber}",
  value: "Items>Dono"
}