【问题标题】:How to count the entire number of rows in a datatable如何计算数据表中的全部行数
【发布时间】:2015-05-20 10:15:33
【问题描述】:

我正在为我的应用程序使用数据表。如何获取数据表onload 中的总行数?我的代码:

$(document).ready( function() {
  $('#jobSearchResultTable').dataTable({
    responsive: true,
    "scrollY": 500,
    "scrollCollapse": true,
    "jQueryUI": true,
    "aaSorting": []
  });
)};

如何获取数据表中的总行数onload

【问题讨论】:

  • dataTable 未定义显示

标签: javascript jquery datatable


【解决方案1】:

如果您使用的是新的 DataTables (v1.10+),您将无法访问某些遗留函数,例如 fnGetData()。

试试这个:

var table = $('#table_id').DataTable();
var table_length = table.data().count();

如果您正在使用分页(我曾经使用过),并且需要所有页面的总计数,请尝试以下操作:

var table = $('#table_id').DataTable({
    'paging': true
});

var length = table.page.info().recordsTotal;

来源:

https://datatables.net/reference/api/count()

https://datatables.net/reference/api/page.info()

【讨论】:

  • table.page.info().recordsTotal;这很好用
  • table.data().count() 给出数据表中的单元格总数 (tds)。 table.data().rows().count() 为您提供行数。
  • 完美的寻呼答案,谢谢!!
  • 我认为这应该是公认的答案!我正在使用服务器端分页并且无权访问所有行。这样就行了。
【解决方案2】:

新版本更新

table.data().count()

参考:https://datatables.net/reference/api/count()

对于旧版本:

$(document).ready(function() {
 //Initialize your table
 var table = $('#jobSearchResultTable').dataTable();
 //Get the total rows
 alert(table.fnGetData().length);
});

来源:https://stackoverflow.com/questions/3238047/jquery-datatables-row-count-across-pages

另一种方法:

table.fnSettings().fnRecordsTotal();

看看哪一种适合你

来源:http://datatables.net/forums/discussion/2278/how-to-get-number-of-rows/

【讨论】:

  • 对我不起作用,表格是动态填充的。
  • 我刚试过。 table.fnGetData().length 不工作。 table.fnSettings().fnRecordsTotal(); 工作
  • table['context'][0]['aiDisplay'].length 即使在搜索后也对我有用。检查我的答案stackoverflow.com/a/58746208/5803974
  • 这个解决方案似乎对我不起作用。但我尝试了以下“$('#TableId').DataTable().rows().count();”。希望这会有所帮助
【解决方案3】:

按照对我有用的方式从服务器端处理中获取响应:

// tested with : DataTables 1.10.15
t1 = $('#item-list').DataTable({
    "processing": true,
    "serverSide": true,
    "ajax":'url',
    "drawCallback": function( settings, start, end, max, total, pre ) {  
        console.log(this.fnSettings().json); /* for json response you can use it also*/ 
        alert(this.fnSettings().fnRecordsTotal()); // total number of rows
    },
    ...
});

【讨论】:

  • 除了这个之外,没有一个解决方案对我有用。干杯!!!
【解决方案4】:
$('#jobSearchResultTable').dataTable().rows().count()

【讨论】:

  • 虽然这段代码 sn-p 可以解决问题,但including an explanation 确实有助于提高帖子的质量。请记住,您是在为将来的读者回答问题,而这些人可能不知道您提出代码建议的原因。
  • @Praveen 请在表中过滤(搜索)后检查
  • 这至少有两个问题:(1)你必须使用.DataTable()而不是.dataTable()才能使用.rows(),(2)它返回过滤的行数,而不是总数。
【解决方案5】:

根据您的描述,我假设您有 id="jobSearchResultTable" 的表。

试试这个,它可能对你有用。

$(document).ready( function() {
   $('#jobSearchResultTable').dataTable({
    responsive: true,
    "scrollY":  500,
    "scrollCollapse": true,
    "jQueryUI":       true,
    "aaSorting": []

   });
   var count=0;
   $('#jobSearchResultTable tr').each(function(){
      count++;
   });
   alert(count);

)};

这将显示表格中的行数。

【讨论】:

  • 但我想要总行数,即它显示当前页行数,即如果表有 50 行,那么我希望计数为 50,而不是每页 10 个
  • 我认为这对你来说是正确的答案 (stackoverflow.com/questions/3238047/…)
【解决方案6】:

请查看以下代码

var table = $('#example').DataTable(); 
alert(
    'Number of row entries: '+
    table
        .column( 0 )
        .data()
        .length
);

【讨论】:

    【解决方案7】:

    我从答案中尝试了大部分解决方案,但对我不起作用。

    有些工作,但是当我们搜索时,它显示相同的数字而不是搜索后的行数。

     var tbl=$('#tbl_name').DataTable();
     console.log(tbl['context'][0]['aiDisplay'].length);
    

    即使在搜索后它也对我有用,显示搜索后的当前行数。

    【讨论】:

      【解决方案8】:

      //获取整行数
      table.rows().eq(0).length;

      【讨论】:

      • 这应该是评论,而不是答案。我知道你没有评论权限,但是一天之内就能获得足够的声望……
      【解决方案9】:

      我刚刚在控制台中读取了表实例并在 1.10.8 版本中得到了这个

      var table = $("#mytable").DataTable({})
      var total = table.settings()[0].json.recordsTotal
      

      希望对你有帮助

      【讨论】:

        【解决方案10】:

        2021 年 10 月,适用于 Yajra 数据表

        myTable.rows().count();
        

        【讨论】:

          猜你喜欢
          • 2013-03-16
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-10-09
          • 1970-01-01
          • 2011-10-15
          • 1970-01-01
          相关资源
          最近更新 更多