动态更改<;中单元格的CSS样式;h:数据表>;柱
如何计算B列的单元格值以及如何动态更改其css样式 我的java对象:动态更改<;中单元格的CSS样式;h:数据表>;柱,css,jsf,primefaces,Css,Jsf,Primefaces,如何计算B列的单元格值以及如何动态更改其css样式 我的java对象: public class MyObject{ private Date date; private int A; private int C; //Getters & Setters } 我的托管bean: public class MyBean(){ List<MyObject> List = myObjectDao.FindAll(); //Getter
public class MyObject{
private Date date;
private int A;
private int C;
//Getters & Setters
}
我的托管bean:
public class MyBean(){
List<MyObject> List = myObjectDao.FindAll();
//Getters & Setters
}
公共类MyBean(){
List=myObjectDao.FindAll();
//接球手和接球手
}
我的jsf代码:
<p:dataTable id="idList" var="list" value="#{myBean.list}" >
<p:column headerText="DATE">
<h:outputText value="#{list.date}" />
</p:column>
<p:column headerText="A">
<h:outputText value="#{list.A}" />
</p:column>
<p:column headerText="B">
<h:outputText value="????????" style="???????" //>
</p:column>
<p:column headerText="C">
<h:outputText value="#{list.C} />
</p:column>
</p:dataTable>
我建议您在MyObject
类中执行逻辑
因此,我会在JSF
中这样调用它:
<p:column headerText="B">
<h:outputText value="#{list.calculateB()}" styleClass="list.createLabel()">
</p:column>
在CSS中
.GREEN {
background-color: #00FF00 !important;
}
只需在EL中使用条件运算符?:
例如
如果模型或控制器中的其他地方也使用了B
,则可以添加一个public int getB()
方法,该方法只包含return(a/C)*100
然后使用{list.B}
而不是{B}
请注意,正确的设计是使用CSS类。例如
与
td.百分比{
显示:块;
}
.百分比{
背景色:红色;
}
.百分比{
背景颜色:蓝色;
}
.好的{
背景颜色:绿色;
}
当然,您也可以按照另一个答案的建议,在getter方法中执行CSS样式/类的确定,但这是一个很差的关注点分离。下面的代码解决了我的问题
style="#{event.eventStatusDesc eq 'Completed' ? 'color: #32cd32;font-weight: bold;':(event.eventStatusDesc eq 'Rescheduled till Further Notice' ? 'color: blue;font-weight: bold;' : 'color: black;')}" />
谢谢你的回答。但是的结果总是=0???很抱歉,请删除scope=“request”
。但是我有一个警告“无法进行小于运算的数值转换”,这是由#{B lt 50?红色“:(B lt 90?蓝色“:“绿色”)引起的“一般IDE中的EL语法验证较差。我已经在Eclipse中关闭了它。如果它是无效的,它肯定会在运行时抛出异常。这是不可能的。这正是我将输出文本设置为display:block
,以使其跨越整个单元格的原因。如果您还有另一个内容,您也希望将其放在具有相同背景颜色的同一单元格中,那么最好将
替换为设置了样式类的
,并将所有内容放在其中(现在您可以删除显示:block
样式,因为默认情况下
已经是这样)。
style="#{event.eventStatusDesc eq 'Completed' ? 'color: #32cd32;font-weight: bold;':(event.eventStatusDesc eq 'Rescheduled till Further Notice' ? 'color: blue;font-weight: bold;' : 'color: black;')}" />