【问题标题】:JSF datatable hide column border if column is not displayed(rendered)如果列未显示(渲染),JSF 数据表隐藏列边框
【发布时间】:2012-06-27 20:28:05
【问题描述】:

我有一个 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>

当条件为假且边框 = 1 时,我有更多这样的列基于条件呈现;我看到显示空白单元格。我怎样才能只显示我想要的列并拥有其他列。 render=false 不显示空白单元格?

谢谢, 赛。

【问题讨论】:

    标签: jsf datatable


    【解决方案1】:

    您不能根据特定行的条件呈现整个列。这在技术上毫无意义。您需要根据父 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}"
    

    【讨论】:

      猜你喜欢
      • 2011-08-31
      • 2016-09-10
      • 2019-09-21
      • 2014-02-03
      • 2021-03-15
      • 2013-10-11
      • 1970-01-01
      • 2014-04-15
      • 1970-01-01
      相关资源
      最近更新 更多