AskalotLearnalot Ответов: 1

Как показать количество строк в табуляторе


В таблицах данных у нас есть функция отображения строк 1 из 100. Я хочу сделать то же самое или подобное в табуляторе. Я использовал этот подход и он возвращает пустую таблицу:

var tabulator_table = new Tabulator("#example", {

            columns: [
                { title: "", field: "", headerFilter: "input" },
                { title: "", field: "", headerFilter: "input" },
                { title: "", field: "", headerFilter: "input" },
                { title: "", field: "", headerFilter: "input" },
                { title: "", field: "", headerFilter: "input" },
                { title: "", field: "", headerFilter: "input" },
            ],
            //this part should return row count
            dataFiltered: function (data, field, type, value) {
                //data - the subset of the total table data that has passed the filter and is now 
                     visible
                //field - the field being filtered
                //type - the type of filter being used
                //value - the value of the filter

                //set text in info element to show the number of rows and filters currently applied
                $("#example-table-info").text("rows:" + data.length + " of " + $("#tableID").Tabulator("getData").length +
                    ", filter:" + field + type + value);
            }

        });

в HTML :

<div class="footer">
        <p id="example-table-info"></p>
        <div id="myButtons"> Export </div>
    </div>

ошибка такова: ".tabulator - это не функция"

Я также попытался использовать другой подход:

function myFunction() {
 return $('tr', $(this).find('tbody')).length;
}
 rowctr = $('#tableID').rowCount();
document.getElementById("demo").innerHTML = myFunction();


<p id="demo"></p>


Что я уже пробовал:

Также я видел на их github, чтобы использовать это:

var activeRowCount = table.getDataCount(true);

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

Если у вас есть способ подсчитать общее количество строк только в JS или табуляторе, это было бы здорово.

1 Ответов

Рейтинг:
9

AskalotLearnalot

После исследований и помощи, вот что я сделал:

var tabulator_table = new Tabulator("#example", {
    columns: [
                    { title: "", field: "", bottomCalc: "count", headerFilter: "input" },
                    { title: "", field: "", bottomCalc: "count", headerFilter: "input" },
                    { title: "", field: "", bottomCalc: "count", headerFilter: "input" },
                    { title: "", field: "", bottomCalc: "count",headerFilter: "input" },
                    { title: "", field: "", bottomCalc: "count", headerFilter: "input" },
                    { title: "", field: "", bottomCalc: "count", headerFilter: "input" },
                ],
    dataFiltered: function(filters, rows) {
                        var el = document.getElementById("search_count");
                        el.innerHTML = rows.length;
                    },
                    dataLoad: function(data) {
                        var el = document.getElementById("total_count");
                        el.innerHTML = data.length;
                    },
      });
      });
             var total_count = $(".tabulator-footer").find('.tabulator-cell:first-child()').text();
            $("#total_count").text(total_count);
   //rest of your js if you have any.

css часть:

.tabulator-footer {
                display: none;
            }

HTML:

<span style="color:#102D4F;font-size:12px;font-family:Arial, Helvetica, sans-serif">
            Showing <span id="search_count"></span>
            results in total 
            <span id="total_count"></span>