如何在JSP中使用Jquery获取DataTables的总行数

Sha*_*iya 2 jquery jsp datatables

我在我的应用程序中使用数据表。加载页面时,我需要显示跨度中表格的行数。我正在使用 table.data().count() 来获取行数。但它没有给出正确的值。

联合应用程序:

<table id="example" class="" cellspacing="0" width="100%" style="padding: 10px">
<thead>
    <tr>
        <!-- <th>S No</th> -->
        <th>Doc Id</th>
        <th id="Position">Geo</th>
        <th id="Position">Practice</th>
        <th id="Position">Opportunity Id</th>
        <th id="Position">Reference Id</th>
        <th id="Position">Status</th>
    </tr>
</thead>
<tbody>
</tbody>
</table>
Run Code Online (Sandbox Code Playgroud)

jQuery:

var table = $('#example').DataTable();
$(document).ready(function() {
                            var rowCount = table.data().count();
                            alert(rowCount);
                            });
Run Code Online (Sandbox Code Playgroud)

dav*_*rad 6

首先,不能依赖ready()在表初始化后执行。这种结构很少ready()是真正需要的,甚至是有用的,当人们认为他们需要它时,它通常是糟糕设计的副作用。我确实在 SO 上看到了数百篇帖子,其中人们遇到了由特殊嵌套ready()范围引起的问题,并且大多数时候使用的唯一原因ready()是“传统”或“只是为了确定”,即货物邪教编程

其次,没有count()方法data()。有,但这是因为data()实际上返回的是一个 API,数据作为附加了 API 方法的数组。

因此,使用Array.length来获取行数,并将代码放在 dataTablesinitComplete回调中:

var table = $('#example').DataTable({
   initComplete: function() {
      $('#count').text( this.api().data().length )
   }
})  
Run Code Online (Sandbox Code Playgroud)

标记可能如下所示:

<p id="count"></p>
Run Code Online (Sandbox Code Playgroud)

http://jsfiddle.net/f9zq9gn8/