首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在UI5表中的不同行中添加不同的控件

在UI5表中的不同行中添加不同的控件
EN

Stack Overflow用户
提问于 2019-01-03 09:49:19
回答 1查看 649关注 0票数 0

我有一个表sap.ui.table.Table ans,我有一个模型,其中有些记录有链接,有些没有。我想在列中的sap.m.Link组件中呈现链接,当链接在记录中不可用时,它应该呈现“没有提供链接”。在列中的sap.m.Text中。

因为sap.ui.table.Column具有模板聚合,它不支持绑定聚合,因为它只支持0或1个控件。格式化程序也适用于这里。是否可以根据模块数据在运行时更改列的内容?

我的模块数据是:

代码语言:javascript
复制
var data = [{
   id : 1,
   link : 'abc.com'
},
{
   id : 2
},
{
   id : 3,
   link : 'pqr.com'
}]

我提供的代码是:

代码语言:javascript
复制
var link = new sap.m.Link({text : "{link}"});
var noLink = new sap.m.Text({text : "Link is not provided."});

var idColumn = new sap.ui.table.Column({
    label : [new sap.m.Label({text : "ID"})],
    template : [new sap.m.Text({text : "{id}"})]
});

var linkColumn = new sap.ui.table.Column({
   label : [new sap.m.Label({text : "Link"})],
   template : [??????]
});

var table = new sap.ui.table.Table({
    columns : [idColumn, linkColumn]
});

var model = new sap.ui.model.json.JSONModel();
model.setData({items : data});
table.setModel(model);
table.bindRows("/items");

我想根据模块中的数据在列linknoLink中添加likColumn运行时。我怎样才能做到这一点?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-01-03 17:01:56

可以使用formatter更改每列的显示内容。

例如:

代码语言:javascript
复制
   new sap.m.Link({
      width: "20em",
      //editable: false,
      //text: "{items>link}"   
      text: {
        path: "items>link",
        formatter: function(link){
          if (link === undefined) return "Link is not provided"
          return link;
        }
      }
    });

...

oTable.addEventDelegate({
    onAfterRendering: function(){
        $('#idTable a:contains("Link is not provided")').removeClass("sapMLnk");
    }
}, oTable);

更新:--这是一个jsbin,包含您需要的全部示例:更新的例子

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54019792

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档