jQuery DataTables: ordenar fechas por columna oculta

Resuelto LAffair asked hace 9 años • 1 respuestas

He estado trabajando durante un par de días con DataTables y tengo esta tarea: necesito deshabilitar la clasificación inicial y filtrar la primera columna que contiene fechas como Aug 15dependiendo de la cuarta ( 2015.08.15), que estará oculta.

Por ejemplo, si tengo:

Aug 15    |  2015.08.15
Aug 7     |  2015.08.07
Aug 3     |  2015.08.03
Aug 20    |  2015.08.20

En orden ascendente debería obtener:

Aug 3     |  2015.08.03
Aug 7     |  2015.08.07
Aug 15    |  2015.08.15
Aug 20    |  2015.08.20

Pero me sale el orden alfabético:

Aug 15    |  2015.08.15
Aug 20    |  2015.08.20
Aug 3     |  2015.08.03
Aug 7     |  2015.08.07

Mi primer código fue algo como:

$("#TableBt" + rid).DataTable({
  "aaSorting": [],
  "columns": [
    null,
    null,
    {
      "title": lC2
    },
    {
      "visible": false
    }]

Esto deshabilitó mi clasificación inicial, pero ordenó alfabéticamente mi columna de fecha (la primera y visible).

Después de investigar un poco, cambié el código así:

$("#TableBt" + rid).dataTable({
  "asSorting": [],
  "aoColumnDef": [
    {
      "iDataSort": 3,
      "aTargets": [4]
    },
    null,
    {
      "sTitle": lC2
    },
    {
      "bVisible": false,
      "aTargets": [3]
    }]
});

Pero ahora todas las columnas son visibles, la clasificación inicial está nuevamente habilitada y la clasificación por fecha funciona solo alfabéticamente.

¿Qué estoy haciendo mal?

LAffair avatar Sep 18 '15 19:09 LAffair
Aceptado

SOLUCIÓN

Debe usar columnDefspara apuntar a la primera columna ( targets: 0) y definir la columna con la que se usarían los datos para ordenar la primera columna orderData. También necesitas ocultar la siguiente columna ( targets: 3) con visible: false.

$("#TableBt" + rid).DataTable({
   columnDefs: [
       { targets: 0, orderData: 3 },
       { targets: 3, visible: false }    
   ]
});

MANIFESTACIÓN

Consulte este jsFiddle para obtener código y demostración.

Gyrocode.com avatar Sep 19 '2015 15:09 Gyrocode.com