name - Recuento de filas de datos de jquery en las páginas
jquery name attribute (5)
Estoy usando el complemento jQuery DataTables para mi tabla HTML.
¿Hay alguna manera de obtener el recuento de filas del número de filas en mi tabla en todas las páginas?
Por ejemplo, si tengo 70
filas en mi tabla y digamos que 50
de ellas se muestran en la 1ª página y 20
en la 2ª página. ¿Hay alguna manera de obtener la cuenta de 70
?
He intentado todas las sugerencias incluidas en esta publicación: jQuery: cuenta el número de filas en una tabla
Esto incluye:
var rowCount = $(''#myTable tr'').length;
var rowCount = $(''#myTable tr'').size();
var rowCount = $(''#myTable >tbody >tr'').length;
var rowCount = $("#myTable").attr(''rows'').length;
Pero todas las sugerencias anteriores parecen devolver el número de filas en la página existente (en este caso, 50
y no 70
).
SOLUCIÓN
Para tablas de datos 1.10
Use page.info()
para recuperar información sobre la tabla como se muestra a continuación.
Total de registros de propiedad mantendrá el número total de registros en la tabla.
var table = $(''#example'').DataTable({
"initComplete": function(settings, json){
var info = this.api().page.info();
console.log(''Total records'', info.recordsTotal);
console.log(''Displayed records'', info.recordsDisplay);
}
});
MANIFESTACIÓN
Vea este jsFiddle para el código y la demostración.
NOTAS
Esta solución funcionará para los modos de procesamiento del lado del cliente y del lado del servidor siempre que use page.info()
una vez que se hayan recuperado los datos, por ejemplo, en la función de devolución de llamada initComplete
.
Cuando se utiliza la paginación del lado del servidor, se puede acceder al recuento total de registros como ...
dt.fnSettings()._iRecordsTotal;
Si está utilizando la paginación del lado del servidor, puede enlazar con fnDrawCallback y actualizar su html cada vez que se dibuje la tabla ...
$(''#Table'').dataTable({
"fnDrawCallback": function (oSettings) {
alert(oSettings._iRecordsTotal);
}
});
En la respuesta JSON de su llamada ajax de datos, obtenemos ''iTotalDisplayRecords'' como una de las propiedades de ese objeto JSON de respuesta. Puede usar directamente el valor de ''iTotalDisplayRecords'' como número de registros en su Tabla de datos.
Parece que DataTables está eliminando las filas que no están en la página actual del DOM, por lo que no podrá contarlas con un selector jQuery. Tendrá que usar la API DataTables , específicamente la función fnGetData
:
$(document).ready(function() {
// Initialize your table
var oTable = $(''#myTable'').dataTable();
// Get the length
alert(oTable.fnGetData().length);
} );
Si está utilizando la extensión Scroller y usa la búsqueda para filtrar las filas a un subconjunto, puede obtener la longitud de ese subconjunto como este
$(''#foo'').dataTable().fnSettings().aiDisplay.length;