检查计数数据表是否为空

时间:2016-10-24 08:56:28

标签: javascript datatables

我无法获取计数数据,我需要知道该表是否为emtpy,这是我的代码:

var table = $("#tbl_tmppo");
        var target = table.attr('data-table');

        var oTable = table.on( 'processing.dt', function ( e, settings, processing ) {
            if (processing) {
                $(this).find('tbody').addClass('load1 csspinner');
            } else{
                $(this).find('tbody').removeClass('load1 csspinner');
            };
        } ).DataTable({
            "bServerSide": true,
            "ajax": host+'datatable/'+target,
            "columnDefs": [{
                "targets": [ -1 ],
                "className": "dt-body-left",
            }]
        });

我有点卡在这里,我想检查一下我是否没有关于Otable的数据,我需要做点什么,如果不是我需要别的东西。任何人都可以帮助我??

更新: 我使用的是oTable.Data()。length,但它始终显示0长度,即使我在该表上有2条记录。如果我使用oTable.Data()。count()显示错误不是unifined。

CLOSED。 tq for kcp code

oTable.on('draw', function () {
    /* Now you can count rows */
    var count = table.data().count()-1;

});

所以我可以计算我的数据。 Tq kcp !!!你真棒!

2 个答案:

答案 0 :(得分:2)

您可以使用dataFilter来获取行数。

DataTable({
    "bServerSide": true,
    ajax: {
        url: host+'datatable/'+target,
        dataFilter: function(data){
            var json = jQuery.parseJSON( data );
            /* Here you have your results */
            json.recordsTotal = json.recordsTotal;
            json.recordsFiltered = json.recordsFiltered;
            json.data = json.list;

            return data;
        }
    }
    "columnDefs": [{
       "targets": [ -1 ],
       "className": "dt-body-left",
     }]
})

@edit: 对于非后端数据,您可以使用draw事件。 例如:

oTable.on('draw', function () {
    /* Now you can count rows */
    var count = table.find("tr").size();
});

@ edit2:您还可以使用data().count()

DataTable.API方法
oTable.on('draw', function () {
        /* Now you can count rows */
        var count = table.data().count();
});

答案 1 :(得分:-1)

function CountRows() {
    var totalRowCount = 0;
    var rowCount = 0;
    var table = document.getElementById("tblCustomers");
    var rows = table.getElementsByTagName("tr")
    for (var i = 0; i < rows.length; i++) {
        totalRowCount++;
        if (rows[i].getElementsByTagName("td").length > 0) {
            rowCount++;
        }
    }
    var message = "Total Row Count: " + totalRowCount;
    message += "\nRow Count: " + rowCount;
    alert(message);
}