Кнопка предыдущей нумерации страниц в datatable не уменьшает значение страницы до 0, а останавливается на 1 - PullRequest
0 голосов
/ 07 мая 2019

На моей странице есть дата, которая работает должным образом, за исключением обновления номера страницы при нажатии предыдущей или следующей навигационной кнопки.

Каждый щелчок по следующей кнопке увеличивает страницу с 0-> 1-> 2-> 3 ... но нажатие кнопки prev не возвращает ее к странице № 0, а к 1. В действительности, страницаНа пользовательском интерфейсе отображается 0 информации, но page.info (). Страница отображает номер страницы как 1.

Пожалуйста, помогите, почему кнопка prev не обновляет номер страницы до 0, а пользовательский интерфейс отображает информацию на странице 0.

function initializeInProgressShipmentsTable(pageSize) {
    var tableId = "#in-progress-shipments-table";
    var dataTable = $(tableId).DataTable({
        "lengthChange": false,
        "pageLength": pageSize,
        "processing": true,
        "pagingType": "simple",
        "retrieve": true,
        "order": [],
        "columns": [
            {"data": "link"},
            {"data": "link2"},
            {"data": "link3"},
            {"data": "rc"},
            {"data": "link4"},
            {"data": "oc"},
            {"data": "st"},
            {"data": "link5"}
        ],
        "drawCallback": function (settings) {
            var api = this.api();
            addClickEventListenerOnNextButton(tableId);
            enableNextButton(api, pageSize, tableId);
        }
    });

    return dataTable;
}
/**
 * Function that adds a listener to click event on next button.
 * It will only loads data from the server if last page is displayed and next button is not disabled
 * @param tableId
 */
function addClickEventListenerOnNextButton(tableId) {
    $(tableId + "_next").click(function () {
        var dataTable = $(tableId).DataTable();
        var pageInfo = dataTable.page.info();
        var isNextButtonEnabled = $(tableId + '_next.paginate_button.next.disabled').length > 0 ? false : true;

        if (isNextButtonEnabled && ((pageInfo.page + 1) >= pageInfo.pages)) {
            $("#loader_wrapper").show();

            $.ajax({
                type: "GET",
                url: getURL(tableId, getPageSize(tableId)),
                async: false,
                success: function (response) {
                    if (response.responseCode == "SUCCESS") {
                        loadResultAndRedrawTheTable(tableId, response);
                        increaseCallTimes(tableId);
                        $("#loader_wrapper").hide();
                        $('.load_failed').hide();
                    } else {
                        showErrorMessage("Loading new results failed, Error : " + response.message);
                    }
                },
                error: function () {
                    showErrorMessage("Loading new results failed, Please try after sometime.");
                }
            });
        }
    });
}

/**
 * Enable next button to load more results
 * @param api
 * @param pageSize
 */
function enableNextButton(api, pageSize, tableId) {
    if ((api.rows({page: 'current'}).count() == pageSize)) {
        $(tableId + '_next.paginate_button.next').removeClass("disabled");
    }
}
...