jquery - full - datatables pagination options
jquery DataTables. Cómo obtener filas filtradas(visibles) (5)
En caso de que desee una colección de nodos (elementos DOM) como fngetNodes (), puede usar ''$'' en lugar de ''_'' como esta table.$(''tr'', {"filter":"applied"});
el ''_'' devuelve una colección de ''TR'' (elementos html).
Tengo un botón que aplica filtro a jquery datatable
$("#buttonFilter").button().click(function() {
if (lboxColor.val() != null) {
jqTable.fnFilter($("option:selected", lboxColor).text(), 1);
}
});
Me muestra, por ejemplo, 47 filas de 60. Intenté .fnGetData () y fnGetNodes () pero me muestra todas las filas, pero no se ha filtrado. ¿Cómo podría obtener 47 filas?
He estado buscando durante aproximadamente una hora, para cualquiera que use DataTables 1.10+ si desea obtener las filas filtradas (mejor término: "buscado"):
var table = $(''.table'').DataTable({...});
function selectOnlyFiltered(){
var filteredRows = table.rows({filter: ''applied''});
}
Para aquellos que estén interesados, este es un caso concreto de uso.
/**
* Select all the elements of the datatable which match the current user
* search (or all if no search).
*/
function dtable_selectAll()
{
idTable = ''myDataTable'';
var rows = $(''#'' + idTable).dataTable()
.$(''tr'', {"filter":"applied"});
var oTT = TableTools.fnGetInstance(idTable);
$(rows).each(function (index, el){
oTT.fnSelect(el);
})
}
Espero eso ayude.
Para las tablas de datos 1.9 y posteriores, esta solución funciona:
myDataTableHandle = $(''#example1'').dataTable(...);
...
...
var myFilteredRows = myDataTableHandle._(''tr'', {"filter":"applied"});
y no tendrás que incluir un plugin de api separado. :)