Sapui5 将样式类绑定到列模板?
我有一个绑定到JSON模型的表。除了单元格的内容外,JSON模型还包含一个属性,该属性保存应应用于列的模板元素的类 是否有方法将此属性绑定到列模板Sapui5 将样式类绑定到列模板?,sapui5,Sapui5,我有一个绑定到JSON模型的表。除了单元格的内容外,JSON模型还包含一个属性,该属性保存应应用于列的模板元素的类 是否有方法将此属性绑定到列模板 谢谢 您可以绑定语义颜色-请参见 不幸的是,您无法将任何内容绑定到styleClass,但可以使用工厂函数而不是模板: sap.ui.table.Column({ factory : function(sId, oCtx){ return new sap.ui.commons.TextView({ te
谢谢 您可以绑定语义颜色-请参见
不幸的是,您无法将任何内容绑定到styleClass,但可以使用工厂函数而不是模板:
sap.ui.table.Column({
factory : function(sId, oCtx){
return new sap.ui.commons.TextView({
text : oCtx.getProperty('Name')
}).addStyleClass(oCtx.getProperty('SomeClass'))
}
});
如果您有这样的模型:
[{
Name : 'John',
SomeClass : 'Red'
}]
new sap.ui.table.Column({
label: new sap.ui.commons.Label({text: "{i18n>FILE_NAME}"}),
template: new sap.ui.layout.HorizontalLayout({
// workaround for conditional control:
// if DOC_ID is not there, hide link; otherwise hide the text view
content: [
new sap.ui.commons.Link({
text: "{FILENAME}",
href: {
path: "DOC_ID",
formatter: function(value) {
return "http://www.example.com/" + value;
}
},
visible: {
path: "DOC_ID",
formatter: function(value) {
return value != "";
}
}
}),
new sap.ui.commons.TextView({
text: "{FILENAME}",
visible: {
path: "DOC_ID",
formatter: function(value) {
return value == "";
}
}
})
]
}),
sortProperty: "FILENAME",
filterProperty: "FILENAME"
})
我有一个类似的问题:如果
DOC\u ID
值可用,则单元格应显示链接(基于DOC\u ID
),否则仅显示文本视图
我试图为列
指定一个工厂函数。但就我所见,工厂函数甚至没有被调用
我确实成功地采用了以下方法:
- 作为模板,我指定了一个
水平布局
- 作为布局的内容,我指定了
TextView
和链接
- 为了确保只有一个控件可见,我对每个控件的
visible
属性使用formatter函数进行了属性绑定
删除细节后,类似以下内容:
[{
Name : 'John',
SomeClass : 'Red'
}]
new sap.ui.table.Column({
label: new sap.ui.commons.Label({text: "{i18n>FILE_NAME}"}),
template: new sap.ui.layout.HorizontalLayout({
// workaround for conditional control:
// if DOC_ID is not there, hide link; otherwise hide the text view
content: [
new sap.ui.commons.Link({
text: "{FILENAME}",
href: {
path: "DOC_ID",
formatter: function(value) {
return "http://www.example.com/" + value;
}
},
visible: {
path: "DOC_ID",
formatter: function(value) {
return value != "";
}
}
}),
new sap.ui.commons.TextView({
text: "{FILENAME}",
visible: {
path: "DOC_ID",
formatter: function(value) {
return value == "";
}
}
})
]
}),
sortProperty: "FILENAME",
filterProperty: "FILENAME"
})
根据需要渲染多少不同的控件,这可能也是一种可行的方法。这实际上看起来很有希望,因为它提供了最大的灵活性。不幸的是它不起作用-至少对我来说不起作用。。。是否使用其他库元素或自定义元素?