Попытка сделать сумму на таблицах данных, но это только суммирование первой страницы - PullRequest
1 голос
/ 11 июня 2019

Я пытаюсь суммировать столбцы в таблице данных. Но это только подведение итогов первой страницы? Две переменные Requiredone и Bookedtwo суммируют только значения с первой страницы данных, а не весь набор данных: s

    var sTable = $('.datatable').dataTable({
    "bJQueryUI": true,
    "sPaginationType": "full_numbers",
    "bScrollCollapse": true,
    "aaSorting": [[1, "desc"]],
    "bServerSide": true,
    "bProcessing": true,
    "sAjaxSource": CycleTimeReport,
    "aoColumns": [
        { "sName": "one", "sClass": "ellipsis" },
        { "sName": "two", "sClass": "ellipsis" }
    ],
    "fnServerData": function (sSource, aoData, fnCallback) {
        var data = new Object();
        data.jsonAOData = JSON.stringify(aoData);
        dataToSend = data;

        $.ajax({
            contentType: "application/json; charset=utf-8",
            type: "POST",
            url: sSource,
            data: JSON.stringify(dataToSend),
            success: function (msg) {
                fnCallback(msg);
            },
            error: function (XMLHttpRequest, textStatus, errorThrown) {
                if (document.Invoice.hostname == "localhost") {
                    alert(XMLHttpRequest.status);
                    alert(XMLHttpRequest.responseText);
                }
            }
        });
    },
    "fnFooterCallback": function (nRow, aaData, iStart, iEnd, aiDisplay) {

            var Requiredone = 0;
            var Bookedtwo = 0;

            for (var i = 0; i < aaData.length; i++) {
                Requiredone+= aaData[i][2] * 1;
                Bookedtwo += aaData[i][3] * 1;
            }
},
    "oLanguage": {
        "sSearch": "_INPUT_"
    },
    "fnInitComplete": function (oSettings, json) {
    },
    "bSortCellsTop": true
});

1 Ответ

0 голосов
/ 11 июня 2019

Вы используете обработку данных на стороне сервера. Таким образом, у вашего объекта данных есть только данные для текущей отображаемой страницы. Вы должны реализовать сумму на стороне сервера и добавить ее в JSON-ответ или сделать это в дополнительном ajax-запросе.

Другой вариант - отключить обработку на стороне сервера и предварительно заполнить элемент таблицы или заполнить свойство aaData настроек datatales объектом json, содержащим все данные.

...