Табулятор: получить общее количество строк в табличном буфере при прогрессивной нагрузке - PullRequest
0 голосов
/ 14 апреля 2020

Я пытаюсь сгенерировать обратную связь с пользователем, используя функцию ajaxProgressiveLoad - например, индикатор процента или количества строк / общего количества строк, чтобы пользователь знал, когда данные в виртуальном DOM завершены.

Я прошел Всего строк из моего ajax ответа, но я не могу получить общее количество записей в таблице. Используя ajaxResponse, я вижу, что он обновляется с использованием getDataCount, но я всегда стесняюсь от общего количества при последнем чтении.

Вот мой конструктор - отметил, что я использовал ajaxResponse, dataLoaded и dataLoading безрезультатно - я по-прежнему стесняюсь.

Неужели мне не хватает другого обратного вызова?

var table = new Tabulator("#example-table", {
    height:"600px",
    layout:"fitColumns",
    ajaxSorting:true,
    ajaxFiltering:true,
    headerFilterLiveFilterDelay:2000, //wait 600ms from last keystroke before triggering filter
    ajaxURL:"Pagination_PL.php", //ajax URL
    ajaxProgressiveLoad:"load", //enable progressive loading
    ajaxProgressiveLoadDelay:200, //wait 200 milliseconds between each request
    ajaxProgressiveLoadScrollMargin:300, //triger next ajax load when scroll bar is 300px or less from the bottom of the table.
    ajaxResponse:function(url, params, response){
        //url - the URL of the request
        //params - the parameters passed with the request
        //response - the JSON object returned in the body of the response.
        console.log("ajaxResponse")
        console.log("Number of Records: " + response.totalItems);
        console.log(table.getDataCount());
        console.log(table.getDataCount("active")); //return currently filtered data
        console.log(table.getDataCount("visible")); //return currently filtered data
        return response; //return the response data to tabulator
    },
     dataLoaded:function(data){
         console.log("dataLoaded")
        //data - all data loaded into the table
        console.log(table.getDataCount());
        console.log(table.getDataCount("active")); //return currently filtered data
    },
    dataLoading:function(data){
        console.log("dataLoading")
        //data - the data loading into the table
        console.log(table.getDataCount());
        console.log(table.getDataCount("active")); //return currently filtered data
    },
    columns:[
        {title:"NUMBER", field:"NUMBER", width:150,headerFilter:true},
        {title:"STATUS", field:"STATUS", width:100,headerFilter:true }
   ]
...