我有一个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不显示空白单元格?
谢谢, 西。
答案 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表达式中的其他一些错误。您不应该使用is
或get
作为属性名称的前缀,而应引用字符串值。你也可以更好地使它成为一个布尔属性。
private boolean display;
public boolean isDisplay() {
return display;
}
与
rendered="#{bean.display}"