富的群组可见性:rich:datatable中的列

时间:2011-04-12 16:07:01

标签: jsf datatable richfaces

我在rich:datatable中有一组列,这些列是基于某些预处理条件可见的。我想做的一个例子是:

<rich:datatable value="tableList" var="list">

    <h:panelGroup rendered="#{condition}">
        <rich:column>
            Component
        <rich:column>

        <rich:column>
            Component
        <rich:column>
    </h:panelGroup>

    <h:panelGroup rendered="#{not condition}">
        <rich:column>
            Component
        </rich:column>
    </h:panelGroup>

</rich:datatable>

这里的问题是panelGroup标签永远不会在rich:datatable中呈现,即使我删除了“呈现”条件。我尝试使用a4j:outputPanel和其他一些但没有工作。

我可以删除面板并将条件放在每一列中,但这将是我要做的最后一件事。

为什么不工作?问候。

1 个答案:

答案 0 :(得分:0)

事实上,我非常确定<rich:dataTable>会忽略任何不是UIColumnColumn对象的直接孩子(我只是看看org.richfaces.component.ColumnsIterator ,由UIDataTable使用。

换句话说,<h:panelGroup>只会被<rich:dataTable>忽略,无论rendered属性值是什么。

为了解决您的问题,我看到了三个解决方案:

  1. 在每个rendered;
  2. 上添加<rich:column>属性
  3. 使用<rich:columnGroup>组件;
  4. 定义两个<rich:dataTable>,一个展示位置#{condition}评估为true,另一个展示位置为false