我在一个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和其他几个,但都不起作用。
我可以移除面板并将条件放在每一列中,但这是我最后一次要做的事情。
为什么不起作用?致以问候。
发布于 2011-04-13 15:45:56
事实上,我非常确定<rich:dataTable>会忽略任何不是UIColumn或Column对象的直接子对象(我刚刚看了一下UIDataTable使用的org.richfaces.component.ColumnsIterator )。
换句话说,您的<h:panelGroup>将被<rich:dataTable>忽略,而与rendered属性值何时为无关。
为了解决你的问题,我看到了三种解决方案:
对于每个<rich:column>;
false.
<rich:dataTable>,
rendered属性,当的计算结果为#{condition}时,一个属性显示为true,为true时,另一个属性显示https://stackoverflow.com/questions/5638301
复制相似问题