有条件地渲染dataTable

时间:2012-10-24 14:00:46

标签: ajax jsf richfaces

我在JSF页面中有一个<rich:dataTable>

<rich:dataTable id="transactionTable" rendered="#{tellerBean.userTransactions.size() > 0}"
    value="#{tellerBean.userTransactions}" var="transaction">

当我按下搜索按钮时,支持列表会被填充,我会重新渲染表格。但是这不起作用,因为rendered属性是服务器端,并且网格从未首先转换为HTML,因此重新呈现失败。如何在后备列表为0大小时隐藏网格,并在列表大小为> 0时显示。 0?

1 个答案:

答案 0 :(得分:1)

将其包装在一个始终呈现的组件中,然后更新它。

<h:panelGroup id="transactionTableGroup">
    <rich:dataTable ... rendered="#{not empty tellerBean.userTransactions}">

    </rich:dataTable>
</h:panelGroup>

(请注意,我也改进了rendered属性中的EL表达式;你的笨拙并且在使用Facelets而不是遗留JSP时只会产生XML语法错误

另见: