我有一个 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 不显示空白单元格?
谢谢,赛。
您无法根据特定行的条件呈现整个列。这在技术上没有意义。您需要根据父 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 表达式中的一些其他错误。您不应在属性名称前添加is
or前缀get
,并且应引用字符串值。您还可以更好地将其设为布尔属性。
private boolean display;
public boolean isDisplay() {
return display;
}
Run Code Online (Sandbox Code Playgroud)
和
rendered="#{bean.display}"
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
2852 次 |
最近记录: |