如何通过未通过渲染属性渲染的组件来消除空白?
我想在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>
由于渲染的内容,它将每行仅显示一个项目。我该如何避免这种情况?我也在其他场合对此感到困惑。。。
谢谢!
使用datatable
每行显示一项是显而易见的。
您可以更好地拥有两个不同的数据表,一个渲染x,另一个渲染y,并相应地调整css
,使其看起来像同一表的两列。或者使用richfaces,<rich:subTable>
会对您有所帮助,例如在单个dataTable
中有两个subTable
使用单个列并在其中进行渲染。
<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>