propiedades language ejemplo jquery sorting datatables columnsorting

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:

http://csuvscu.com/

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 ] } ] });