我有一个带有subTable的dataTable。我使用渲染的列属性和colspan,它可以在dataTable和footer子表中工作,但不能在子表的列中工作。
这是我的带有子表代码的dataTable:
<p:dataTable id="NotificadaSubTable" var="notificada" value="#{relatoriosMB.listaObjeto1}"
rendered="#{not empty relatoriosMB.listaObjeto1}"
widgetVar="tableClassAnual"
emptyMessage="Não existem registros." resizableColumns="true"
liveResize="true">
<f:facet name="header">
<h:outputText value="Área Notificada VS Subclassificações" rendered="#{not empty relatoriosMB.listaObjeto1}"/>
</f:facet>
<p:columnGroup type="header">
<p:row>
<p:column rowspan="2" colspan="3" headerText="Área Notificada" rendered="#{not empty relatoriosMB.listaObjeto1}"/>
<p:column colspan="#{relatoriosMB.countColumns}" headerText="Subclassificações" rendered="#{not empty relatoriosMB.listaObjeto1}"/>
</p:row>
<p:row>
<p:column headerText="JAN" style="width:50px;text-align: center" rendered="#{relatoriosMB.janeiro}"/>
<p:column headerText="FEV" style="width:50px;text-align: center" rendered="#{relatoriosMB.fevereiro}"/>
<p:column headerText="MAR" style="width:50px;text-align: center" rendered="#{relatoriosMB.marco}"/>
<p:column headerText="ABR" style="width:50px;text-align: center" rendered="#{relatoriosMB.abril}"/>
<p:column headerText="MAI" style="width:50px;text-align: center" rendered="#{relatoriosMB.maio}"/>
<p:column headerText="JUN" style="width:50px;text-align: center" rendered="#{relatoriosMB.junho}"/>
<p:column headerText="JUL" style="width:50px;text-align: center" rendered="#{relatoriosMB.julho}"/>
<p:column headerText="AGO" style="width:50px;text-align: center" rendered="#{relatoriosMB.agosto}"/>
<p:column headerText="SET" style="width:50px;text-align: center" rendered="#{relatoriosMB.setembro}"/>
<p:column headerText="OUT" style="width:50px;text-align: center" rendered="#{relatoriosMB.outubro}"/>
<p:column headerText="NOV" style="width:50px;text-align: center" rendered="#{relatoriosMB.novembro}"/>
<p:column headerText="DEZ" style="width:50px;text-align: center" rendered="#{relatoriosMB.dezembro}"/>
<p:column headerText="TOTAL" style="width:100px;text-align: center"/>
</p:row>
</p:columnGroup>
<p:subTable id="subTableDetalhe" var="detalhe" value="#{notificada.detalhe}">
<f:facet name="header">
<h:outputText value="#{notificada.objeto}"/>
</f:facet>
<p:column colspan="3" >
<h:outputText value=" #{detalhe.objeto}"/>
</p:column>
<p:column>
<p:outputLabel value="#{detalhe.janeiro}" rendered="#{relatoriosMB.janeiro}"/>
</p:column>
<p:column>
<p:outputLabel value="#{detalhe.fevereiro}" rendered="#{relatoriosMB.fevereiro}"/>
</p:column>
<p:column>
<p:outputLabel value="#{detalhe.marco}" rendered="#{relatoriosMB.marco}"/>
</p:column>
<p:column>
<p:outputLabel value="#{detalhe.abril}" rendered="#{relatoriosMB.abril}"/>
</p:column>
<p:column>
<p:outputLabel value="#{detalhe.maio}" rendered="#{relatoriosMB.maio}"/>
</p:column>
<p:column>
<p:outputLabel value="#{detalhe.junho}" rendered="#{relatoriosMB.junho}"/>
</p:column>
<p:column>
<p:outputLabel value="#{detalhe.julho}" rendered="#{relatoriosMB.julho}"/>
</p:column>
<p:column>
<p:outputLabel value="#{detalhe.agosto}" rendered="#{relatoriosMB.agosto}"/>
</p:column>
<p:column>
<p:outputLabel value="#{detalhe.setembro}" rendered="#{relatoriosMB.setembro}"/>
</p:column>
<p:column>
<p:outputLabel value="#{detalhe.outubro}" rendered="#{relatoriosMB.novembro}"/>
</p:column>
<p:column>
<p:outputLabel value="#{detalhe.dezembro}" rendered="#{relatoriosMB.dezembro}"/>
</p:column>
<p:column>
<p:outputLabel value="#{detalhe.totalLinha}"/>
</p:column>
<p:columnGroup type="footer">
<p:row>
<p:column colspan="3" style="text-align:right" footerText="Total Subclassificações:" />
<p:column exportable="#{relatoriosMB.janeiro}"
footerText="#{notificada.totalJaneiro}" rendered="#{relatoriosMB.janeiro}" />
<p:column exportable="#{relatoriosMB.fevereiro}"
footerText="#{notificada.totalFevereiro}" rendered="#{relatoriosMB.fevereiro}"/>
<p:column exportable="#{relatoriosMB.marco}"
footerText="#{notificada.totalMarco}" rendered="#{relatoriosMB.marco}"/>
<p:column exportable="#{relatoriosMB.abril}"
footerText="#{notificada.totalAbril}" rendered="#{relatoriosMB.abril}"/>
<p:column exportable="#{relatoriosMB.maio}"
footerText="#{notificada.totalMaio}" rendered="#{relatoriosMB.maio}"/>
<p:column exportable="#{relatoriosMB.junho}"
footerText="#{notificada.totalJunho}" rendered="#{relatoriosMB.junho}"/>
<p:column exportable="#{relatoriosMB.julho}"
footerText="#{notificada.totalJulho}" rendered="#{relatoriosMB.julho}"/>
<p:column exportable="#{relatoriosMB.agosto}"
footerText="#{notificada.totalAgosto}" rendered="#{relatoriosMB.agosto}"/>
<p:column exportable="#{relatoriosMB.setembro}"
footerText="#{notificada.totalSetembro}" rendered="#{relatoriosMB.setembro}"/>
<p:column exportable="#{relatoriosMB.outubro}"
footerText="#{notificada.totalOutubro}" rendered="#{relatoriosMB.outubro}"/>
<p:column exportable="#{relatoriosMB.novembro}"
footerText="#{notificada.totalNovembro}" rendered="#{relatoriosMB.novembro}"/>
<p:column exportable="#{relatoriosMB.dezembro}"
footerText="#{notificada.totalDezembro}" rendered="#{relatoriosMB.dezembro}"/>
<p:column footerText="#{notificada.totalFooter}"/>
</p:row>
</p:columnGroup>
</p:subTable>
</p:dataTable>
屏幕截图网页生成:
我该怎么办?我使用jsf 2.2和Primefaces 5.1