使用汇总行后,使用数据表排序行

时间:2014-09-06 10:37:14

标签: jsf jsf-2 primefaces datatable

我有一个客户数据表,我想使用组代码对它们进行分组,并使用primefaces summary row显示小计。这工作正常,但我想使用实体的订单属性对这些分组的行进行排序。我怎么能这样做?

在下面的图片中。我希望订单号为7的第一行成为第一组的最后一项。

enter image description here

我还尝试在从数据库加载时对其进行排序,但它无法正常工作。 数据表的xhtml如下

<p:dataTable value="#{collectionSheetController.collectionSheetColl}" var="cs" 
                     sortBy="#{cs.memberInfo.groupId.id}" sortOrder="ascending" id="collectionDT"
                     selectionMode="single"
                     rowKey="#{cs.memberInfo}" 
                     rowStyleClass="#{cs.requiredAmountCollected eq true ? 'greenRow' : null}">

            <p:columnGroup type="header" id="firstheader">
                <p:row>
                    <p:column  colspan="3"  headerText="Member Info"></p:column>
                    <p:column  rowspan="2"  headerText="Collection"></p:column>
                    <p:column  rowspan="2"  headerText="Pre."></p:column>
                    <p:column  rowspan="2"  headerText="S.R"/>
                    <p:column  rowspan="2"  headerText="Loan"/>
                    <p:column  rowspan="2"  headerText="Total(Rs.)"></p:column>
                    <p:column  rowspan="2"  headerText="Ex."></p:column>
                    <!--- other columns -->
                </p:row>
                <p:row>
                    <p:column headerText="G Code"></p:column>
                    <p:column headerText="Order"></p:column>
                    <p:column headerText="Member Name"></p:column>

                </p:row>
            </p:columnGroup>
            <p:column headerText="G.Code">
                <h:outputText value="#{cs.memberInfo.groupId.code}" />
            </p:column>
            <p:column headerText="Order"  sortBy="#{cs.memberInfo.order}" >
                <h:outputText value="#{cs.memberInfo.order}" />
            </p:column>
            <p:column headerText="Name" >
                <h:outputText value="#{cs.memberInfo.firstName}  #{cs.memberInfo.lastName}" />
            </p:column>

            <p:column>
                <f:facet name="header">Amount</f:facet>
                <pe:inputNumber value="#{cs.collectionAmount}" minValue="0" emptyValue="0" thousandSeparator="," decimalPlaces="2"/>
            </p:column>
            <p:column>
                <f:facet name="header">Pre.</f:facet>
                <h:outputText value="#{cs.preCollection}" />
            </p:column>
            <p:column>
                <p:selectCheckboxMenu label="#{(cs.selectedRecords eq null or cs.selectedRecords.isEmpty())?'SR': recordsController.getLabel(cs.selectedRecords)}" value="#{cs.selectedRecords}"   >

                    <f:selectItems value="#{recordsController.recordsList}" var="v"
                                   itemValue="#{v.id}" itemLabel="#{v.alias}" />
                    <f:convertNumber />
                    <f:attribute name="collectionType" value="java.util.HashSet" />
                    <p:ajax process="@this" update="@this" />
                </p:selectCheckboxMenu>
            </p:column>

               <p:column>
                   <p:selectCheckboxMenu label="Clear" value="#{cs.loanAccounts}"   >

                    <f:selectItems value="#{cs.allLoanAccounts}" var="v"
                                   itemValue="#{v.id}" itemLabel="#{v.accountNo}" />
                    <f:convertNumber />
                    <f:attribute name="collectionType" value="java.util.HashSet" />
                    <p:ajax process="@this" update="@this" />
                </p:selectCheckboxMenu>
            </p:column>

            <p:column>
                <f:facet name="header">Total</f:facet>
                <h:outputText value="#{cs.total}" />
            </p:column>
            <p:column>
                <f:facet name="header">Add.</f:facet>
                <h:outputText value="#{cs.additional}" />
            </p:column>
          <!--- other columns -->

            <p:summaryRow>  
                <p:column colspan="3" style="text-align:right">  
                    Total:  
                </p:column>  

                <p:column>  
                    Rs. <h:outputText value="#{collectionSheetController.getGroupTotalCollected(cs.memberInfo.groupId)}" />  
                </p:column>  
                <p:column />
                <p:column />
                <p:column />
                <p:column>  
                    <h:outputText value="#{collectionSheetController.getGroupTotalToCollect(cs.memberInfo.groupId)}" />
                </p:column>  
            </p:summaryRow>

我正在使用primefaces 3.4.2和Mojarra 2.1.6

0 个答案:

没有答案