3.0RC1-SNAPSHOT dataTable & subTable defect

UI Components for JSF
Post Reply
smithh032772
Posts: 6144
Joined: 10 Sep 2011, 21:10

05 Dec 2011, 06:57

This page did not look like this in PrimeFaces 3.0M4. It looks like this in Primefaces 3.0.RC1-SNAPSHOT (build 2011-12-03). I had to remove p:dataTable f:facet header/footer and paginator controls, which actually works for this use-case, but i hope this bug is fixed, for the sake of others, and maybe even for me, if my use-case eventually requires the controls that were removed.

dataTable & subTable f:facet header/footer with paginator

Image

dataTable & subTable f:facet header/footer without paginator

Image

xhtml file

Code: Select all

<?xml version='1.0' encoding='UTF-8' ?> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:ui="http://java.sun.com/jsf/facelets"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:f="http://java.sun.com/jsf/core"
      xmlns:p="http://primefaces.org/ui">
    
    <ui:composition>
        
        <h:form id="payrollForm" onkeypress="disableEnterKey(event)" >
            
            <ui:include src="/pf_ajaxStatus.xhtml"/>

            <p:messages showDetail="true" showSummary="true" />

            <p:panel id="payrollPanel" styleClass="panel-title-centeralign" header="PAYROLL">
                
                <h:panelGroup layout="block" style="width: 100% !important; text-align: center !important;" >
                    <h:panelGrid columns="3" width="100%" style="text-align: center !important;" >
                        <h:panelGrid columns="2">
                            <h:outputText value="Driver" />
                            <p:selectOneMenu id="filterDriver" value="#{pf_ordersController.filterDriver}">
                                <f:selectItem itemLabel="Select One" itemValue="0" />
                                <f:selectItems value="#{pf_driverController.itemsAvailableSelectOne}"
                                               var="selectOneDriver" itemLabel="#{selectOneDriver.driverName}" itemValue="#{selectOneDriver.driverId}"/>
                                <p:ajax listener="#{pf_ordersController.filterDriverSelected}" update=":pageContentPanel"/>
                            </p:selectOneMenu>
                        </h:panelGrid>
                        <h:panelGrid columns="2">
                            <h:outputLabel value="Pay Period Begin:" />
                            <p:calendar id="filterTripDateFrom" value="#{pf_ordersController.filterTripDateFrom}"
                                        mode="popup" showOn="button" navigator="true" effect="fadeIn" pattern="MM/dd/yyyy" size="12">
                                <p:ajax event="dateSelect" listener="#{pf_ordersController.filterTripDateFromSelected}" update=":pageContentPanel" />
                            </p:calendar>
                        </h:panelGrid>
                        <h:panelGrid columns="2">
                            <h:outputLabel value="Pay Period End:" />
                            <p:calendar id="filterTripDateTo" value="#{pf_ordersController.filterTripDateTo}"
                                        mode="popup" showOn="button" navigator="true" effect="fadeIn" pattern="MM/dd/yyyy" size="12">
                                <p:ajax event="dateSelect" listener="#{pf_ordersController.filterTripDateToSelected}" update=":pageContentPanel" />
                            </p:calendar>
                        </h:panelGrid>
                    </h:panelGrid>
                </h:panelGroup>
                
                <p:dataTable id="payrollDataTable" var="driver" value="#{pf_ordersController.driverPayrollList}"
                            paginator="true" rows="1" rowsPerPageTemplate="1,10,25,50,100" 
                            paginatorTemplate="{CurrentPageReport}  {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}">
                    
                    <f:facet name="header">
                        <h:panelGroup layout="block">
                            <p:commandButton value="Filter" image="ui-icon-search"
                                             actionListener="#{pf_ordersController.prepareList}" update=":pageContentPanel"/>
                            <p:commandButton value="Clear Filter"
                                             actionListener="#{pf_ordersController.clearFilter}" update=":pageContentPanel"/>
                        </h:panelGroup>
                    </f:facet>
                    
                    <p:columnGroup type="header">
                        <p:row>
                            <p:column headerText="Driver"/>
                            <p:column colspan="5" headerText="" />
                            <p:column colspan="3" headerText="Miles" />
                            <p:column colspan="3" headerText="Hours" />
                            <p:column colspan="1" headerText="" />
                        </p:row>

                        <p:row>
                            <p:column headerText="Trip Date" />
                            <p:column headerText="Destination" />
                            <p:column headerText="Customer" />
                            <p:column headerText="Service" />
                            <p:column headerText="Order #" />
                            <p:column headerText="Gratuity" />
                            <p:column headerText="Live" />
                            <p:column headerText="Dead" />
                            <p:column headerText="Total" />
                            <p:column headerText="Days" />
                            <p:column headerText="Hrs/Day" />
                            <p:column headerText="Total" />
                            <p:column headerText="Pay By" />
                        </p:row>
                    </p:columnGroup>

                    <p:subTable var="order" value="#{driver.orders}">

                        <f:facet name="header">
                            #{driver.driver} (#{driver.rowNumber} of #{pf_ordersController.driverPayrollList.size()})
                        </f:facet>

                        <p:column>
                            <h:outputText escape="false" value="#{order.tripDate}" />
                        </p:column>

                        <p:column>
                            <h:outputText escape="false" value="#{order.destination}" />
                        </p:column>

                        <p:column>
                            <h:outputText value="#{order.customer}" />
                        </p:column>

                        <p:column>
                            <h:outputText escape="false" value="#{order.service}" />
                        </p:column>

                        <p:column style="text-align: center !important;">
                            <h:outputText escape="false" value="#{order.orderNumber}">
                                <f:convertNumber minIntegerDigits="4" groupingUsed="false" integerOnly="true" type="number"/>
                            </h:outputText>
                        </p:column>

                        <p:column style="text-align: right !important;">
                            <h:outputText escape="false" value="#{order.gratuity}">
                                <f:convertNumber minFractionDigits="2" type="number"/>
                            </h:outputText>
                        </p:column>

                        <p:column style="text-align: right !important;">
                            <h:outputText escape="false" value="#{order.liveMiles}">
                                <f:convertNumber minFractionDigits="2" type="number"/>
                            </h:outputText>
                        </p:column>

                        <p:column style="text-align: right !important;">
                            <h:outputText escape="false" value="#{order.deadMiles}">
                                <f:convertNumber minFractionDigits="2" type="number"/>
                            </h:outputText>
                        </p:column>

                        <p:column style="text-align: right !important;">
                            <h:outputText escape="false" value="#{order.totalMiles}">
                                <f:convertNumber minFractionDigits="2" type="number"/>
                            </h:outputText>
                        </p:column>

                        <p:column style="text-align: right !important;">
                            <h:outputText escape="false" value="#{order.nbrOfDays}" />
                        </p:column>

                        <p:column style="text-align: right !important;">
                            <h:outputText escape="false" value="#{order.hoursPerDay}" />
                        </p:column>

                        <p:column style="text-align: right !important;">
                            <h:outputText escape="false" value="#{order.totalHours}">
                                <f:convertNumber minFractionDigits="2" type="number"/>
                            </h:outputText>
                        </p:column>

                        <p:column>
                            <h:outputText escape="false" value="#{order.payBy}" />
                        </p:column>

                    </p:subTable>

                    <f:facet name="footer">
                        <h:panelGroup layout="block">
                            <p:commandButton value="Filter" image="ui-icon-search"
                                             actionListener="#{pf_ordersController.prepareList}" update=":pageContentPanel"/>
                            <p:commandButton value="Clear Filter"
                                             actionListener="#{pf_ordersController.clearFilter}" update=":pageContentPanel"/>
                        </h:panelGroup>
                    </f:facet>

                </p:dataTable>

            </p:panel>
            
        </h:form>
        
        <script language="JavaScript">
        function disableEnterKey(e)
        {
             var key;
             if(window.event)
                  key = window.event.keyCode;     //IE
             else
                  key = e.which;     //firefox
             if(key == 13)
                  return false;
             else
                  return true;
        }
        </script>        

    </ui:composition>

</html>
This is Issue 2972.
http://code.google.com/p/primefaces/iss ... il?id=2972
Howard

PrimeFaces 6.0, Extensions 6.0.0, Push (Atmosphere 2.4.0)
TomEE+ 1.7.4 (Tomcat 7.0.68), MyFaces Core 2.2.9, JDK8
JUEL 2.2.7 | OmniFaces | EclipseLink-JPA/Derby | Chrome

Java EE 6 Tutorial|NetBeans|Google|Stackoverflow|PrimeFaces|Apache

Post Reply

Return to “PrimeFaces”

  • Information
  • Who is online

    Users browsing this forum: No registered users and 49 guests