example - jquery datatable parameters
Clasificación personalizada en valores en un atributo de ordenación de datos con Jquery Datatables (2)
Encontré una solución fácil que funciona para mí y no requiere demasiado código o cambios en datatables.js.
Es muy similar a los requisitos de la pregunta, pero no es exactamente el mismo.
En lugar de data-sort
puede utilizar una etiqueta de comentario HTML.
<td data-sort="111123">E 1.111,23</td>
se convierte en
<td><!-- 000000111123 -->E 1.111,23</td>
Al rellenar con cero un int
se ordenarán como una string
. El relleno cero hace que la ordenación se comporte como cabría esperar: clasificar los enteros de alto a bajo.
La solución funciona para fechas, ints y cadenas. Para las fechas y los ints, puede usar un lenguaje de scripting para mostrarlos de la forma que desee (p. Ej., Rellenado con cero, formateado como aaaa-mm-dd).
Tengo que hacer algunos tipos personalizados con Jquery Datatables. No quiero escribir funciones de orden personalizado para cada ordenamiento personalizado.
Quiero definir un valor para ordenar y que Datatables ignore los valores de la columna original, si el valor está definido.
Por ejemplo:
<td data-sort="111123">E 1.111,23</td>
Quiero que Jquery Datatables ordene esta columna numéricamente en 111123
.
<td data-sort="19801220">20-12-1980</td>
Quiero que Jquery Datatables ordene esta columna numéricamente en 19801220
.
<td>a string</td>
Quiero que Jquery Datatables ordene esta columna por su valor original a string
.
http://www.datatables.net/plug-ins/sorting tiene "Clasificación numérica de títulos ocultos", que está cerca de lo que quiero, pero me obliga a especificar cada dato en qué columna se aplica esta clasificación personalizada. Tengo demasiados datos de diferentes tamaños para hacer esto en un tiempo razonable. Solo quiero que Datatables ordene siempre este valor / atributo de datos ocultos si está presente. No hay necesidad de definiciones de clasificación personalizadas en columnas específicas.
Relacionado: jQuery DataTables: ¿cómo ordenar por valor de parámetro personalizado en lugar del contenido de la celda? pero desafortunadamente no hay respuesta sobre cómo ordenar simplemente por un parámetro personalizado, en lugar de punteros a scripts de clasificación personalizados.
Puedes usar el orden de datos, por ejemplo
<table class="table table-bordered table-hover">
<thead>
<tr>
<th>Date</th>
<th>Count</th>
</tr>
</thead>
<tbody>
<?php
$count = 0;
foreach($users as $user) {?>
<tr>
<td data-order="<?php echo $count ?>">
<?php echo $user[''createdDate'']; ?>
</td>
<td>
<?php echo $user[''count'']; ?>
</td>
</tr>
<?php
$count++;
}?>
<tr>
<td data-order="999999999999999999999999999"> <!--always last-->
Total
</td>
<td>
<?php echo count($users); ?>
</td>
</tr>
más información datos de HTML5- * atributos