由于SCN上有很多线程,而且人们正试图找出如何有条件地更改字体颜色和字体大小,你会发现一个通过jQuery操作CSS或DOM的解决方案 - 那不是它应该的方式。
我想通过SAP后端展示如何进行设置,控制颜色和字体!
简单的例子,您在SAPUI5表中显示负值和正值 - 让我们说正值:
您需要在实体中使用更多属性,一个用于设计,一个用于类:
然后使用相应的值在ABAP中增强您的方法(稍后详细解释哪些值可用):
最后在UI5表中定义一个引用:
然后你去了,突出显示了一个具有正面含义的单行(对不起黑色...它不适合公众;-)所有其他行不是粗体而不是绿色)
SAP中的可用选项: https://openui5.hana.ondemand.com/#docs/api/symbols/sap.ui.commons.TextViewDesign.html https://openui5.hana.ondemand.com/#docs/api/symbols/sap.ui.commons.TextViewColor.html
答案 0 :(得分:3)
除了创建自己的sap.ui.table.Column实现之外,没有正式的方法可以做这样的事情。
无论如何,你可以在这里使用这个小解决方法添加条件样式类:
var oColumn = new sap.ui.table.Column({
label: new sap.ui.commons.Label({
text: "Last Name"
}),
template: new sap.ui.commons.TextView({
text: {
path: 'Counter',
formatter: function(sValue) {
// in here this refers to your TextView
// get the cell (depending on your template you might have to add more getParent calls here for nested controls)
var oCell = this.getParent();
// remove all possible style classes first because table cells might get reused
oCell.removeStyleClass("newStyleClass");
oCell.removeStyleClass("otherStyleClass");
// add conditional style
if (whatever) {
oCell.addStyleClass("newStyleClass");
} else {
oCell.addStyleClass("otherStyleClass");
}
// just statically return the text since we are not interested in changing it
return sValue;
}
}
})
});
我刚写下来并没有执行,但它应该足以引导你;)
要从后端执行此操作,您只需在服务中提供一个附加字段,比如说'styleClass',它绑定到模板的任何属性,并使用格式化程序设置样式类,如上所示
BR 克里斯