Primefaces datatable sorting issue

290 Views Asked by At

Problem with primefaces datatable. Hi, I’m using Primefaces and 6.2 and I have issue with datatable. I have lazy data model, with load method: load(int first, int pageSize, String sortField, SortOrder sortOrder, Map<String, Object> filters)

So, when I’m on first data tables page, I can change (by clicking on columns) sortOrder to ASCENDING or DESCENDING, but when I’m changing page, for example to second, my sortOrder is DESCENDING, even if on first page it was ASCENDING. Could you please help me with this issue?

    <p:dataTable
            var="element"
            value="#{model}"
            lazy="true"
            paginator="true"
            rows="20"
            paginatorTemplate="{CurrentPageReport} {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink}"
            rowsPerPageTemplate="25,50,100"
            id="dataTable"
            currentPageReportTemplate="#{pagesBean.getCommonFieldText('entries')}: {startRecord} - {endRecord} #{pagesBean.getCommonFieldText('of')} {totalRecords}, #{pagesBean.getCommonFieldText('page')}: {currentPage}/{totalPages}"
            sortBy="default"
            sortOrder="descending"
            emptyMessage="#{pagesBean.getCommonFieldText('tb_zeroRecords')}"
            rowStyleClass="#{rowstyleclass}">
        <p:column headerText="datetime"
                  priority="3" >
            <h:outputText value="#{element.datetime}" />
        </p:column>
    </p:dataTable>

            @Override
            public List<SearchResult> load(int first, int pageSize, String sortField, SortOrder sortOrder, Map<String, Object> filters) {
                SearchResult result = md.getCustomers(first, pageSize, sortField, sortOrder.name());
                model.setRowCount(result.getCount());

                return (List<SearchResult>) result.getResult();
            }
0

There are 0 best solutions below