====== DataTables ====== Creación de tablas HTML avanzadas. * [[https://datatables.net/|Web oficial]] ===== Elementos ===== Cuando una tabla es gestionada por DataTables, hay ciertos elementos que se muestran por defecto: Poner una captura de pantalla donde se vea una tabla con estos elementos * Cuadro de búsqueda: ''searching'' * Información de la tabla: ''info'' * Paginación: ''paging'' * Ordenación: ''ordering'' ===== Fijar columnas ===== Si queremos que una columna se mantenga fija cuando nos desplacemos horizontalmente, en la inicialización de DataTables añadimos: fixedColumns: { leftColumns: 1 } En ''leftColumns'' indicamos la posición de la columna que queremos fija. En este ejemplo sería la primera columna. * Solucionar problema con tablas pequeñas: https://www.datatables.net/forums/discussion/52178/fixedcolumns-problem-when-table-width-is-small ===== Exportar ===== Mediante plugins, DataTables permite exportar el contenido de la tabla en diferentes formatos * https://datatables.net/extensions/buttons/examples/initialisation/export ==== CSV ==== Si la tabla que nos interesa tiene el identificador ''tabla'': $('#tabla').DataTable({ dom: 'Bfrtip', buttons: [ { extend: 'csv', text: ' CSV', // Añadimos icono de Font Awesome al botón filename: 'nombre_fichero', fieldSeparator: ";" // Por defecto es una coma, como debe de ser } ] }); Es necesario incluir: ==== Excel ==== Si la tabla que nos interesa tiene el identificador ''tabla'': $('#tabla').DataTable({ dom: 'Bfrtip', buttons: [ { extend: 'excel', text: ' CSV', // Añadimos icono de Font Awesome al botón filename: 'nombre_fichero', // la extensión se añade automáticamente title: null, // para que no muestre un título en la hoja de cálculo sheetName: "Hoja" // por defecto, pone "Sheet1" } ] }); Es necesario incluir: ===== Idiomas ===== Si queremos mostrar el texto que DataTables añade en otro idioma, tenemos dos opciones: añadir el texto que queramos o utilizar alguna traducción ya hecha. $(document).ready( function () { $('#mi-tabla').DataTable({ language: { url: '//cdn.datatables.net/plug-ins/1.13.7/i18n/es-ES.json' } }); } ); * [[https://datatables.net/plug-ins/i18n/Spanish.html|Spanish translation for DataTables]] ===== Ordenación ===== ==== Deshabilitar ordenación inicial ==== $(document).ready( function () { $('#mi-tabla').DataTable({ "order": [] }); } ); ==== Ordenar por una columna específica ==== $(document).ready( function () { $('#mi-tabla').DataTable({ "order": [[4, "asc"]] }); } ); Ordenaría de forma ascendente por la columna 4 que es la que ocupa la quinta posición (la primera columna tiene el valor 0). ===== Navegación ===== ==== Longitud del menú ==== Muestra un selector para elegir el número de resultados que se visualizarán por página. El siguiente fragmento mostrará las opciones de mostrar 10, 25, 50 o todos los registros: $('#example').dataTable( { "lengthMenu": [ [10, 25, 50, -1], [10, 25, 50, "Todo"] ] } ); ===== Opciones ===== ^ Opción ^ Descripción ^ Ejemplo ^ | ''ordering'' | Habilitar/deshabilitar ordenación | ''ordering: false'' | ===== Recursos ===== * [[https://datatables.net/manual/tech-notes/10|Cömo pedir ayuda en los foros oficiales]] * https://datatables.net/extensions/responsive/examples/initialisation/default.html * https://datatables.net/forums/discussion/16580/result-count-at-top * https://datatables.net/forums/discussion/33418/dom-elements-taking-up-an-entire-line-using-bootstrap-and-buttons * https://datatables.net/examples/api/show_hide.html * https://datatables.net/reference/option/columns.type * https://datatables.net/forums/discussion/14746/sorting-on-the-decimal-values-are-not-working * https://datatables.net/reference/option/initComplete * [[https://datatables.net/extensions/fixedcolumns/examples/initialisation/two_columns.html|Fijar columnas]]