DataTable Agrupados y rowExpansion

Si deseamos agrupar columnas de un datatable como por ejemplo:

Si deseamos ver las columnas expandidas

   <p:dataTable value="#{solicitudDocenteController.disponiblesBeansList}" 
                                         id="datatableDisponibles"
                                         var="item"  >
                                <f:facet name="header">
                                  <p:outputLabel  value="#{msg['tabletitle.vehiculos']}" />
                                </f:facet>
                                <p:columnGroup type="header">
                                    <p:row>

                                        <p:column rowspan="1" style="width:95px" headerText="#{msg['field.fecha']}" />
                                        <p:column colspan="1"  style="width:95px" headerText="#{msg['field.tipovehiculo']}" />
                                        <p:column colspan="5" headerText="#{msg['tabletitle.resultado']}" />
                                    </p:row>
                                    <p:row>
                                        <p:column headerText="" />
                                        <p:column headerText="" />
                                        <p:column colspan="2" headerText="#{msg['tabletitle.disponibles']}" />
                                        <p:column colspan="3" headerText="#{msg['tabletitle.solicitados']}" />
                                        <p:column colspan="1" headerText="#{msg['tabletitle.recomendados']}" />

                                    </p:row>
                                    <p:row>
                                        <p:column headerText="" />
                                        <p:column headerText="" />
                                        <p:column headerText="#{msg['field.vehiculos']}" />
                                        <p:column headerText="#{msg['field.pasajeros']}" />
                                        <p:column headerText="#{msg['field.vehiculos']}" />
                                        <p:column headerText="#{msg['field.pasajeros']}" /> 
                                        <p:column headerText="#{msg['field.recomendados']}" />

                                    </p:row>
                                </p:columnGroup>

                                <p:column style="width:95px">

                                    <p:rowToggler />
                                    <h:outputText value="#{solicitudDocenteController.showDate(item.fechahorainicio)}" style="color: #{solicitudDocenteController.disponiblesServices.columnColorDisponibles(item)}"  />
                                </p:column>


                                <p:column headerText="#{msg['field.tipovehiculo']}" style="width:95px">
                                   
                                    <h:outputText value="#{solicitudDocenteController.disponiblesServices.showTipovehiculo(item)}" style="color: #{solicitudDocenteController.disponiblesServices.columnColorDisponibles(item)}"  />
                                </p:column>


                                <p:column headerText="#{msg['field.disponible']}" style="width:75px">
                                    <p:outputLabel value="#{item.numeroBuses}" style="color: #{solicitudDocenteController.disponiblesServices.columnColorDisponibles(item)}" />
                                </p:column>
                                <p:column headerText="#{msg['field.pasajeros']}" style="width:75px">
                                    <p:outputLabel value="#{item.numeroPasajeros}" style="color: #{solicitudDocenteController.disponiblesServices.columnColorDisponibles(item)}" />
                                </p:column>



                                <p:column headerText="#{msg['field.solicitado']}" style="width:75px">
                                    <p:outputLabel value="#{item.numeroVehiculosSolicitados}" style="color: #{solicitudDocenteController.disponiblesServices.columnColorDisponibles(item)}"  />
                                </p:column>
                                <p:column headerText="#{msg['field.pasajeros']}" style="width:75px">
                                    <p:outputLabel value="#{item.numeroPasajerosSolicitados}" style="color: #{solicitudDocenteController.disponiblesServices.columnColorDisponibles(item)}"  />
                                </p:column>

                                <p:column headerText="#{msg['field.vehiculosRecomendados']}" style="width:75px">
                                    <p:outputLabel value="#{item.busesRecomendados}" style="color: #{solicitudDocenteController.disponiblesServices.columnColorDisponibles(item)}"  />
                                </p:column>


                                <p:rowExpansion>
                                    <p:dataTable value ="#{item.vehiculo}" var="car">
                                        <p:column headerText="#{msg['field.marca']}">
                                            <p:outputLabel value="#{car.marca}"/>
                                        </p:column>
                                        <p:column headerText="#{msg['field.modelo']}">
                                            <p:outputLabel value="#{car.modelo}"/>
                                        </p:column>
                                        <p:column headerText="#{msg['field.placa']}">
                                            <p:outputLabel value="#{car.placa}"/>
                                        </p:column>
                                        <p:column headerText="#{msg['field.pasajeros']}">
                                            <p:outputLabel value="#{car.pasajeros}"/>
                                        </p:column>
                                    </p:dataTable>

                                </p:rowExpansion>

                            </p:dataTable>        

Last updated