如何使用ajax显示/隐藏JSF数据表列?

问题描述

| 我有一个刷新下表的ajax调用。如果所有值都为null,是否可以隐藏\“ Score \”列(它是一个BigDecimal),否则应该显示?
<h:dataTable id=\"theTable\" value=\"#{MyBean.people}\" var=\"person\">
  <h:column>
    <f:facet name=\"header\">
      <h:outputText value=\"Name\" />
    </f:facet>
    #{person.name}
  </h:column> 
  <h:column rendered=\"#{person.score != null}\">
    <f:facet name=\"header\">
      <h:outputText value=\"The Score\" />
    </f:facet>
    #{person.score}
  </h:column> 
</h:dataTable>
即使分数不为null,当前渲染的结果也会始终使列不渲染。     

解决方法

没有“简单”的方法,您必须自己查看完整的收藏集。您可以编写帮助程序方法检查列表中的空值:
public boolean isAllScoresNull() {
    for(Person p : people) {
        if(p.getScore != null) return false;
    }
    return true;
}
并通过页面中的EL进行使用:
...
<h:column rendered=\"#{myBeanController.allScoresNull}\">
...
您也可以为该任务定义TagFunction。     

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...