Нумерация страниц не работает должным образом в Ajax / jtable - PullRequest
0 голосов
/ 23 апреля 2019

Это странная проблема, ярлык «перейти на страницу» иногда показывает больше страниц, чем следовало бы, а иногда показывает только около 4-5 страниц с 10 записями на странице, когда у меня около 500 записей в базе данных, вот код:

jquery.jtable.js:

    $.extend(true, $.hik.jtable.prototype, {

    /************************************************************************
    * DEFAULT OPTIONS / EVENTS                                              *
    *************************************************************************/
    options: {
        paging: false,
        pageList: 'normal', //possible values: 'minimal', 'normal'
        pageSize: 10,
        pageSizes: [10, 25, 50, 100, 250, 500],
        pageSizeChangeArea: true,
        gotoPageArea: 'combobox', //possible values: 'textbox', 'combobox', 'none'

        messages: {
            pagingInfo: 'Showing {0}-{1} of {2}',
            pageSizeChangeLabel: 'Row count',
            gotoPageLabel: 'Go to page'
        }
    },

Даже если paging здесь установлено в false, я зачеркнул его в Ajax.

Код Ajax:

$('#table').jtable({
        title: 'ონლაინ სესხების სია',
        paging: true,
        sorting: false,
        defaultSorting: 'loanId ASC',
        multiSorting: true,
        filteredFields: false,
        actions: {
            listAction: function (postData, jtParams) {
                if (jtParams.jtSorting === undefined) {
                    jtParams.jtSorting = "";
                }
                return $.Deferred(function ($dfd) {
                    if (filteredFields) {
                        $.ajax({
                            url: urls.BASE_API + 'user/getOnlineApplicationList?jtStartIndex=' + jtParams.jtStartIndex + '&jtPageSize=' + jtParams.jtPageSize + '&jtSorting='
                                + jtParams.jtSorting + '&personalNumber=' + $scope.personalNumber + '&firstname='
                                + $scope.firstName + '&lastname=' + $scope.lastName + '&phoneNumber=' + $scope.phoneNumber + '&status=' + $scope.status
                                + '&loantype=' + $scope.loantype + '&userId=' + $scope.userId,
                            type: 'POST',
                            dataType: 'json',
                            data: postData,
                            success: function (data) {
                                $dfd.resolve(data);
                            },
                            error: function () {
                                $dfd.reject();
                            }
                        });

Java-код (только соответствующий код)

    if (loantype.equalsIgnoreCase("consumer")){
        Query query = session.getCurrentSession().createSQLQuery(
                "SELECT cl.*, np.*, cpp.*, l.*, br.* " +
                        "FROM consumer_loan cl " +
                        "JOIN naturalperson np on cl.customer_id = np.personId " +
                        "JOIN custpaymentplan cpp on cpp.loanId = cl.loan_id " +
                        "JOIN loan l on cl.loan_id = l.loanId " +
                        "JOIN branches br on br.branchId = l.branch_id " + search.toString())
                .addEntity("cl", ConsumerLoan.class)
                .addEntity("np", NaturalPerson.class)
                .addEntity("cpp", CustPaymentPlan.class)
                .addEntity("l", Loan.class)
                .addEntity("br", Branch.class);

        for (String arg : args.keySet()) {
            Object val = args.get(arg);
            if (val instanceof List<?>) {
                query.setParameterList(arg, (List) val);
            } else {
                query.setParameter(arg, args.get(arg));
            }
        }

        query.setFirstResult(startIndex);
        query.setMaxResults(pageSize);

        if (query.list().size()>0){
            List<Object[]> objList = query.list();
            for (Object[] row : objList){
                ConsumerLoan cl = (ConsumerLoan) row[0];
                NaturalPerson np = (NaturalPerson) row[1];
                CustPaymentPlan cpp = (CustPaymentPlan) row[2];
                Loan l = (Loan) row[3];
                Branch br= (Branch) row[4];
                User user = userService.getUser(l.getUserId());
                ret.add(new OnlineApplicationListWrapper(l,cpp,np,br,user,cl));
            }

См. Изображение -> (ярлык «Перейти на страницу» в данном случае даже не показывает ничего, даже если есть сотни записей)

pagination

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...