我第一次在我的 Web 项目中使用 primefaces 并使用 rowStyleClass 为我的数据表行动态着色
rowStyleClass="#{alar.severity eq 'Major' ? 'major' : null}"
但是有没有办法检查 rowStyleClass 中的多个条件?我想检查严重性主要、次要和正常。如何执行多个条件?
问问题
7416 次
2 回答
4
考虑到您的情况,一般来说,如果您使用小写严重性作为行类并且您不想排除任何严重性,以下应该可以解决问题:
rowStyleClass="#{not empty alar.severity ? alar.severity.toLowerCase() : null}"
另一个更具扩展性和可读性的解决方案是定义一个 bean-method,它以alar
参数为参数并返回样式类:
public String alarStyleClass(Alar alar) {
if(alar.severity.equals("Major")) return "major";
if(alar.severity.equals("Minor")) return "minor";
if(alar.severity.equals("Normal")) return "normal";
return null;
}
对于rowStyleClass
:
rowStyleClass="#{bean.alarStyleClass(alar)}"
我想到的最后一个可能的解决方案是直接在rowStyleClass
-attribute 中进行所有检查:
rowStyleClass="#{alar.severity eq 'Major' ? 'major' :
alar.severity eq 'Minor' ? 'minor' :
alar.severity eq 'Normal' ? 'normal' :
null}"
于 2013-08-22T07:48:35.377 回答
3
只需级联条件:
rowStyleClass="#{alar.severity eq 'Major' ? 'major' :
(alar.severity eq 'Normal' ? 'normal' :
(alar.severity eq 'Minor' ? 'minor' : null))}">
但它会很快变得不清楚,所以不要经常级联。
于 2013-08-22T07:24:00.233 回答