SAPUI5 oTable一行作为链接,其他作为textview

时间:2014-09-12 06:57:16

标签: textview sapui5 rows

目前我有一个sapui表,我希望将一行作为链接,所有其他行应该是textviews。我的问题是,构建表是基于列:

oTable.addColumn(new sap.ui.table.Column({
    label : new sap.ui.commons.Label({
        text : "Berichtsmonat",
        hAlign : sap.ui.core.HorizontalAlign.Center,
    }),
    template : new sap.ui.commons.Link({ // <-- this should only be valid
                 // for one row, others should be
                 // new sap.ui.commons.TextView
        text : "{Text01}",
        press : pressListOpen, 
    }),
    width : '120px',
    hAlign : sap.ui.core.HorizontalAlign.Center,
}));
定义所有列后

oTable.bindRows("/GetXYZ");

所以,我无法将其换成一行。我该怎么做?有可能吗?

我想我必须以另一种方式创建表,但是如何?非常感谢代码示例如何解决问题或如何正确地构建表...

1 个答案:

答案 0 :(得分:4)

一种解决方案是将模板定义为HorizontalLayout。向现有数据模型添加其他可见性标记,例如跟随VisibleFlagForTextVisibleFlagForLink VisibleFlagForText ==!VisibleFlagForLink )。

var oText = new sap.ui.commons.TextView({
    text:"{Text01}", 
    visible : "{VisibleFlagForText}"
});

var oLink = new sap.ui.commons.Link({ 
    text : "{Text01}",
    press : pressListOpen, 
    visible : "{VisibleFlagForLink}"
});

var oLayout = new sap.ui.layout.HorizontalLayout("Layout1",{content: [oText, oLink ]});

oTable.addColumn(new sap.ui.table.Column({
    label : new sap.ui.commons.Label({
        text : "Berichtsmonat",
        hAlign : sap.ui.core.HorizontalAlign.Center,
    }),
    template : oLayout,
    width : '120px',
    hAlign : sap.ui.core.HorizontalAlign.Center,
}));

然后,您可以更新单行数据模型的可见性标记,以设置可见链接或文本视图。