如何在ajax加载后获取数据表中的行数

How to get number of rows in datatable after ajax load

提问人:Prinu Philip 提问时间:9/27/2016 更新时间:5/28/2020 访问量:15341

问:

"ajax": {

        "url": "<%=request.getContextPath()%>/Home?value=getreqs5",
        "data": function ( json,callback) {
            var oTable = $('#fifth').dataTable();

            // Get the length
            var count=oTable.fnGetData().length;
         return json;
        }
      }

Ajax 数据已成功加载到 datatable 中。但是行数显示为零。ajax返回数据后如何获取数据表中的行数?

AJAX 数据表

评论


答:

15赞 John 9/27/2016 #1

如果您使用的是 datatables 1.10,则可以通过以下方式获取总行数

"ajax": {
     "url" : "<%=request.getContextPath()%>/Home?value=getreqs5",
     "dataSrc": function(res){
         var count = res.data.length;
         alert(count);

         return res.data;
     }
}

使用 您可以获得 ajax 成功回调。在此回调中,您可以计算对象数量,而不是 Ajax 返回的数量。dataSrc

如果你想知道你的所有数据表中有多少行,包括所有页面中的所有行,你可以在你的datatable参数中执行此操作,但在你的ajax参数中执行此操作:

"initComplete": function(settings, json){ 
     var info = this.api().page.info();
     alert('Total records', info.recordsTotal);
 }

评论

0赞 Prinu Philip 9/27/2016
如何在 AJAX 加载后获取计数
0赞 John 9/27/2016
我更新了我的代码。您可以使用 dataSrc 参数进行尝试。
0赞 John 9/27/2016
这将仅返回 ajax 行号。不是数据表中每个页面的总行数。
0赞 Prinu Philip 9/27/2016
就我而言,ajax 行号也很有帮助......我接受了你的回答
0赞 JHOAN B. HENRICHE 12/1/2018
优秀的解决方案
4赞 Rmaxx 5/28/2020 #2

只是为所有寻找如何在其他用例中访问 api 的人添加:

var table = $("#myTable").dataTable();   
table.on('draw', function (data) {
    console.log(table.page.info().recordsDisplay);
});