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

Sai*_*Sai 1 datatable jsf

我有一个 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>
Run Code Online (Sandbox Code Playgroud)

我有更多这样的列,当条件为 false 且 border=1; 时,它们会根据条件进行渲染;我看到显示了空白单元格。我怎样才能只显示我想要的列并有其他即。render=false 不显示空白单元格?

谢谢,赛。

Bal*_*usC 5

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

<h:dataTable value="#{bean.pList}" var="item">
    <h:column rendered="#{bean.display == 'Y'}">
        <h:outputText value="#{item.visitDate}" />
    </h:column>
</datatable>
Run Code Online (Sandbox Code Playgroud)

public String getDisplay()方法移到后面的类中#{bean}

请注意,我还修复了您的 EL 表达式中的一些其他错误。您不应在属性名称前添加isor前缀get,并且应引用字符串值。您还可以更好地将其设为布尔属性。

private boolean display;

public boolean isDisplay() {
    return display;
}
Run Code Online (Sandbox Code Playgroud)

rendered="#{bean.display}"
Run Code Online (Sandbox Code Playgroud)