如果未显示(呈现)列,则JSF数据表隐藏列边框

时间:2012-06-26 13:45:38

标签: jsf datatable

我有一个JSF数据表

 <h:dataTable id="memberTable" value="#{bean.pList}" border="0" 
rowClasses="rowEven rowOdd" var="item">
<h:column rendered="#{item.isDisplay == Y}">
<h:outputText value="#{item.visitDate}" >
</h:outputText>
</h:column>
</datatable>

我有更多这样的列是基于条件的rendred,当条件为false并且我有border = 1时;我看到显示空白单元格。我怎样才能只显示我想要的列和其他列。 rendered = false不显示空白单元格?

谢谢, 西。

1 个答案:

答案 0 :(得分:3)

您无法根据特定行的条件呈现整个列。这在技术上没有意义。您需要根据父bean的属性来评估条件。

<h:dataTable value="#{bean.pList}" var="item">
    <h:column rendered="#{bean.display == 'Y'}">
        <h:outputText value="#{item.visitDate}" />
    </h:column>
</datatable>

public String getDisplay()方法移至#{bean}后面的班级。

请注意,我还修复了EL表达式中的其他一些错误。您不应该使用isget作为属性名称的前缀,而应引用字符串值。你也可以更好地使它成为一个布尔属性。

private boolean display;

public boolean isDisplay() {
    return display;
}

rendered="#{bean.display}"