目前我有一个 sapui 表,我希望其中一行是链接,所有其他行应该是 TextView 。我的问题是,构建表是基于列:
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");
所以,我无法将其切换为一行。我该怎么做?这可能吗?
我想我必须以另一种方式创建表格,但是如何呢?非常感谢代码示例如何解决问题或如何为我的工作正确构建表格...
最佳答案
一种解决方案是将模板定义为 HorizontalLayout
。向现有数据模型添加其他可见性标志,例如如下 VisibleFlagForText
和 VisibleFlagForLink
(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,
}));
然后,您可以更新单行数据模型的可见性标志,以设置链接可见或 TextView 可见。
关于textview - SAPUI5 oTable 一行作为链接,其他作为 TextView ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25802498/