如果在primefaces中为空,则隐藏datalist行

时间:2013-09-02 08:50:06

标签: jsf-2 primefaces

我试图隐藏一个datalist行,如果它们是空的,任何想法如何使用CSS类或任何其他最佳解决方案。我试图使用渲染属性,但它对我来说不起作用。这是我的代码的一些代码片段

<p:tab id="airAccor" title="AIR" titleStyle="height: 20px; font-size :8pt; font-weight: bolder;">
  <p:dataList value="#{wFDesignBean.components}" var="a" id="airComponentsOrderList">
    <p:row rendered="#{a.functionality eq 1}">
      <h:outputLabel id="airCompName" value="#{a.name}" title="#{a.name}" />
    </p:row>
    <p:draggable id="dragableForAirComp" for="airCompName" helper="clone"/>
  </p:dataList>
</p:tab>

呈现的属性将行放空,但它不会隐藏它。我需要隐藏空行以使视图可以接受。

2 个答案:

答案 0 :(得分:2)

通过访问primefaces的类ui-datalist-item并检查行是否为空来解决这个问题,所以隐藏它。这里是我使用的Css函数

.ui-datalist-item:empty {
        display: none;
    }

答案 1 :(得分:1)

我通过使一个函数为空来在facet footer中呈现来解决这个问题:

  <f:facet name="footer"   >
  <h:outputText value="#{myBundle.ListGroupEmpty}" rendered="#{groupController.isGroupsEmpty()}"/>
  </f:facet>

public boolean isGroupsEmpty(){
    if (groups == null) {
        return true;
    }
    if (groups.size()<1){
        return true;
    }
    return false;
}