jquery - language - export footer datatable
jQuery DataTables: ¿cómo ordenar por columna específica? (7)
$ (''# id''). dataTable ({
"" aaSorting ": [[" 0 "," <"desc" o asc> "]]
});
Aquí está la página:
Necesito ordenar por la Columna de fecha, en este momento necesita leer el 6 de noviembre, el 5 de noviembre y por último el 7 de octubre.
¿Cómo hago esto?
Con la última versión de tablas de datos puede ordenar por índice de columna
var data_table = $(''#data-table'').DataTable();
data_table.order( [7,''desc''] ).draw();
Espero que esto ayude.
DataTables utiliza el orden alfabético como método de clasificación predeterminado. Esto es en realidad lo que sucede aquí.
Hay dos soluciones:
- Define tu propio método de clasificación de fechas
- Ordene la tabla utilizando una columna oculta que contiene la fecha en la marca de tiempo de Unix (segundos transcurridos desde el 1 de enero de 1970).
Si desea que sus usuarios puedan ordenar la columna por sí mismos, puede utilizar la primera solución.
--------------- Primera solución:
Necesitamos decirle al complemento DataTable qué hacer con nuestras columnas. Tendrá que usar la propiedad "aoColumns":
$(''table'').dataTable({
// display everything
"iDisplayLength": -1,
"aoColumns":[
{"sType": "shaheenery-date"},
{"bSortable": true},
{"bSortable": true},
{"bSortable": true},
{"bSortable": true}
]
});
Luego defina el método de clasificación "shaheenery-date-asc" y "shaheenery-date-desc". También necesita una función "getDate" que traduzca la fecha en formato numérico:
function getDate(a){
// This is an example:
var a = "Sunday November 6, 2011";
// your code =)
// ...
// ...
// You should output the result as YYYYMMDD
// With :
// - YYYY : Year
// - MM : Month
// - DD : Day
//
// Here the result would be:
var x = 20111106
return x;
}
jQuery.fn.dataTableExt.oSort[''shaheenery-date-asc''] = function(a, b) {
var x = getDate(a);
var y = getDate(b);
var z = ((x < y) ? -1 : ((x > y) ? 1 : 0));
return z;
};
jQuery.fn.dataTableExt.oSort[''shaheenery-date-desc''] = function(a, b) {
var x = getDate(a);
var y = getDate(b);
var z = ((x < y) ? 1 : ((x > y) ? -1 : 0));
return z;
};
--------------- Segunda solución:
También vamos a utilizar la propiedad "aoColumns". Esta vez le pedimos a DataTable que oculte la última columna que contendrá la fecha en la marca de tiempo de Unix. También necesitamos definir esta columna como la predeterminada para clasificar con "aaSorting":
$(''table'').dataTable({
// display everything
"iDisplayLength": -1,
"aaSorting": [[ 5, "desc" ]],
"aoColumns":[
{"bSortable": false},
{"bSortable": true},
{"bSortable": true},
{"bSortable": true},
{"bVisible": false}
]
});
Las respuestas existentes están utilizando la sintaxis de DataTables heredada. Las versiones 1.10+ deben usar la siguiente sintaxis:
$(''table'').dataTable({
"pageLength": -1, //display all records
"order": [[ 0, "desc" ]] // Sort by first column descending
});
Referencia:
Su código actual:
$(''table'').dataTable({
// display everything
"iDisplayLength": -1
});
Lo que podrías hacer:
oTable = $(''table'').dataTable({
// display everything
"iDisplayLength": -1
});
oTable.fnSort( [ [0,''desc''] ] ); // Sort by first column descending
Pero como se señala en el comentario a continuación, este puede ser un método más limpio:
$(''table'').dataTable({
// display everything
"iDisplayLength": -1,
"aaSorting": [[ 0, "desc" ]] // Sort by first column descending
});
oTable = $(''#DataTables_Table_0'').dataTable({ //table id -->DataTables_Table_0
iVote: -1, //field name
"bRetrieve":true
});
oTable.fnSort( [ [1,''desc''] ] ); // Sort by second column descending
$(''#id'').dataTable( { "bSort": true, "aoColumnDefs": [{ ''bSortable'': false, ''aTargets'': [ 1 ] } ] });