问题描述
|
如何通过未通过render属性呈现的组件摆脱空白空间?
我想在dataTable中显示对象列表,并按其具有的属性对其进行排序。我喜欢这样:
查看普通副本到剪贴板吗?
<t:dataTable value=\"#{someBean.values}\" var=\"value\">
<h:column>
<f:facet name=\"header\">
<t:outputText value=\"X\" />
</f:facet>
<h:panelGroup rendered=\"#{value.property eq \'X\'}\">
<!-- some stuff -->
</h:panelGroup>
</h:column>
<h:column>
<f:facet name=\"header\">
<t:outputText value=\"Y\" />
</f:facet>
<h:panelGroup rendered=\"#{value.property eq \'Y\'}\">
<!-- some stuff -->
</h:panelGroup>
</h:column>
</t:dataTable>
由于渲染的东西,它将仅在每行显示一项。如何避免这种情况?我在其他场合也碰到了这个问题...
谢谢!
解决方法
使用单列并在那里渲染。
<t:dataTable value=\"#{someBean.values}\" var=\"value\">
<h:column>
<f:facet name=\"header\">
<t:outputText value=\"#{value.property}\" />
</f:facet>
<h:panelGroup rendered=\"#{value.property eq \'X\'}\">
<!-- some stuff -->
</h:panelGroup>
<h:panelGroup rendered=\"#{value.property eq \'Y\'}\">
<!-- some stuff -->
</h:panelGroup>
</h:column>
</t:dataTable>
,显然每行显示一个带有datatable
的项目。
您最好有两个不同的数据表,一个用于x渲染,另一个用于y渲染,并相应地调整css
,使其看起来像同一张表的两列。否则使用richfaces,<rich:subTable>
会有所帮助,例如在一个a6ѭ中有两个two5ѭ