启用/禁用dataTable PrimeFaces中的列

时间:2014-07-21 11:11:53

标签: jsf primefaces datatable

我在页面中创建了一个dataTable并显示了一些列,但我想只显示那些有条目的列(如果任何列没有记录,那么它不应该显示在页面上。)。有人请告诉我如何对此进行验证并显示表格。

2 个答案:

答案 0 :(得分:2)

您可以在列上使用呈现的属性。

例如,如果当前代码与Primefaces showcase(实体为Car)中的代码类似,则在bean上为每个列创建一个方法,如果所有行都为空,则要省略它们。例如,对于“颜色”列:

public Boolean hasAnyCarColor() {
    for (Car car : cars) {
        if (!(car.getColor() == null) && !(car.getColor().isEmpty()))
            return true;   
    }
    return false;
}

在视图中执行:

<p:column rendered="#{testBean.hasAnyCarColor()}">
    ....
</p:column>

如果有很多行,您可能希望将布尔值缓存在bean的某些属性中。

答案 1 :(得分:1)

我认为此代码可以为您提供帮助:

<p:column rendered="#{var.login != null}">
 <h:outputText value="#{var.login}" />
</p:column>

仅当var不为null

时才会呈现该列