我正在尝试使用jQuery根据列状态值(通过/失败/进行中)设置颜色。
我已经复制了表格并将其粘贴到jsfiddle中进行尝试,并且可以正常工作。但是,在实际的XHTML文件中,jQuery无法正常工作。
.xhtml
public class User {
private int id;
private String name;
public User(int id, String name) {
super();
this.id = id;
this.name = name;
}
public User() {
super();
// TODO Auto-generated constructor stub
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public String toString() {
return "User [id=" + id + ", name=" + name + "]";
}
}
注意:jsfiddle中给定的HTML复制了运行时数据。 (xhtml> html)
我希望根据状态列的值来更改颜色
答案 0 :(得分:4)
我认为最好使用Primefaces Datatable RowColor
首先,必须在CSS中创建styleclass。
CSS:
<style type="text/css">
.passed {
background-color: red !important;
}
.inProgress {
background-color: green !important;
}
</style>
然后,您必须在数据表中使用rowStyleClass
(这在您的代码中是错误的)
<p:dataTable var="var" value="#{someBean.dataList}" rowStyleClass="#{someBean.checkStatus(var.status)}">
<p:column headerText="Id">
<h:outputText value="#{var.id}" />
</p:column>
<p:column headerText="Status">
<h:outputText value="#{var.status}" />
</p:column>
.
.
.
</p:dataTable>
要检查状态,您可以在ManageBean中使用方法或使用带有内联if语句的primefaces示例之类的东西
public String checkStatus(String status){
if (status.equals("InProgress")) {
//This is the styleClass in css
return "inProgress";
} else if (status.equals("Passed")){
//This is the styleClass in css
return "passed";
}else{
return null;
}
}