我有一个客户数据表,我想使用组代码对它们进行分组,并使用primefaces summary row显示小计。这工作正常,但我想使用实体的订单属性对这些分组的行进行排序。我怎么能这样做?
在下面的图片中。我希望订单号为7的第一行成为第一组的最后一项。
我还尝试在从数据库加载时对其进行排序,但它无法正常工作。 数据表的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