¿Cómo puedo eliminar la barra de búsqueda y el pie de página agregados por el complemento jQuery DataTables?

253

Estoy usando jQuery DataTables .

Quiero eliminar la barra de búsqueda y el pie de página (que muestra cuántas filas hay visibles) que se agrega a la tabla de forma predeterminada. Solo quiero usar este complemento para ordenar, básicamente. Se puede hacer esto?

leora
fuente
Puede usarlo eficientemente sDomcomo se describe aquí - stackoverflow.com/a/53885264/5729813
Tushar Walzade

Respuestas:

487

Para DataTables> = 1.10 , use:

$('table').dataTable({searching: false, paging: false, info: false});

Para DataTables <1.10 , use:

$('table').dataTable({bFilter: false, bInfo: false});

o usando CSS puro:

.dataTables_filter, .dataTables_info { display: none; }
pata de hormiga
fuente
77
Tan bueno como es el comentario de @antpaw, y parece funcionar en la mayoría de los casos, no funciona si hay un filtrado en curso para cada columna, como en este ejemplo: datatables.net/release-datatables/extras/FixedColumns/… . ¡Ten cuidado!
Janis Peisenieks
@JanisPeisenieks La URL de ejemplo está rota: datatables.net/extensions/fixedcolumns
antpaw
77
No entiendo por qué se acepta esto, ya que no responde la pregunta. El problema fue eliminar la barra de búsqueda y el pie de página, no deshabilitar la búsqueda por completo.
user1563544
para eliminar completamente el pie de página, debe configurarlo paging:falsey info:falseno solopaging:false
Mike D3ViD Tyson
1
agregando al comentario de @ user1563544, ¿hay alguna forma de ocultar la barra de búsqueda y NO deshabilitar la funcionalidad? (¿aparte de trucos CSS?)
vignz.pie
88

Consulte http://www.datatables.net/examples/basic_init/filter_only.html para obtener una lista de características para mostrar / ocultar.

Lo que desea es establecer "bFilter" y "bInfo" en falso;

$(document).ready(function() {
    $('#example').dataTable( {
        "bPaginate": false,
        "bFilter": false,
        "bInfo": false
                 } );
} );
Eric
fuente
@Eric, gracias, está funcionando para mí, pero quiero mostrar "bPaginate" solo que no quiero mostrar "binfo" cómo puedo implementar si hice "bInfo" = falso y "bPaginate" = verdadero, entonces ambos se muestran
amit
En la última versión de DataTables es solo{paging: false, info: false}
josemmo
42

Tampoco puede dibujar el encabezado o pie de página configurando sDom: http://datatables.net/usage/options#sDom

'sDom': 't' 

mostrará SOLAMENTE la tabla, sin encabezados ni pies de página ni nada.

Se discute aquí: http://www.datatables.net/forums/discussion/2722/how-to-hide-empty-header-and-footer/p1

Scott Stafford
fuente
2
Esto debería agregarse a la respuesta de antpaw. Esto oculta afectivamente el filtro y los divs de marcador de posición de información que aún quedan al pasar "bFilter": falso, "bInfo": falso.
tibc-dev
Esto elimina la paginación en el pie de página. No creo que sea una buena práctica.
Anirudh
1
Ahora se llama 'dom' y puedes controlar mucho más con esta opción. Ver datatables.net/reference/option/dom
unkreativ
1
Esta es realmente la respuesta correcta. Las otras respuestas que involucran ajustes de css y js son todos hacks. Si desea utilizar DataTables correctamente, así es como lo hace. Como ejemplo, si desea mostrar todos los bits y piezas (paginación, longitud de página, etc.) excepto el cuadro de búsqueda, agregaría una dompropiedad con un valor de ltiprver datatables.net/reference/option/dom
onefootswill
26

Si está utilizando un filtro personalizado, es posible que desee ocultar el cuadro de búsqueda, pero aún así desea habilitar la función de filtro, por bFilter: falselo que no es el camino. Usar en su dom: 'lrtp'lugar, por defecto es 'lfrtip'. Documentación: https://datatables.net/reference/option/dom

sulaiman sudirman
fuente
10
var table = $("#datatable").DataTable({
   "paging": false,
   "ordering": false,
   "searching": false
});
Pietro La Grotta
fuente
7

Una manera rápida y sucia es encontrar la clase del pie de página y ocultarlo usando jQuery o CSS:

$(".dataTables_info").hide();
kgiannakakis
fuente
4

si está usando themeroller:

.dataTables_wrapper .fg-toolbar { display: none; }
paja01
fuente
+1 Gracias, esto me señaló en la dirección correcta. No quería ocultar el encabezado también, así que solo quería el pie de página. Las clases ui-corner-bl y ui-corner-br solo se aplican al pie de página, así que usé cualquiera de ellas para obtener el envoltorio de pie de página ........ $ (". ui-corner-bl"). hide ( );
Kevbo
4

Como dijo @Scott Stafford sDOMes la propiedad más apropiada para mostrar, ocultar o reubicar los elementos que componen las tablas de datos. Creo que sDOMahora está desactualizado, con el parche real de esta propiedad ahora dom.

Esta propiedad también permite establecer alguna clase o id a un elemento, para que puedas estilizar más fácilmente.

Consulte la documentación oficial aquí: https://datatables.net/reference/option/dom

Este ejemplo solo mostraría la tabla:

$('#myTable').DataTable({
    "dom": 't'
});
Grirg
fuente
3

Aquí puede agregar un sDomelemento a su código, la barra de búsqueda superior está oculta.

$(document).ready(function() {
    $('#example').dataTable( {
"sDom": '<"top">rt<"bottom"flp><"clear">'
 } );
} );
venky
fuente
3

Esto se puede hacer simplemente cambiando la configuración:

$('table').dataTable({
      paging: false, 
      info: false
 });

Pero para ocultar el pie de página vacío; este código hace el truco:

 $('table').dataTable({
      paging: false, 
      info: false,

      //add these config to remove empty header
      "bJQueryUI": true,
      "sDom": 'lfrtip'

});
Shayan Sulehri
fuente
2

Solo un recordatorio que no puede inicializar DataTableen el mismo <table>elemento dos veces.

Si encuentra el mismo problema, puede establecer searchingy pagingfalso mientras inicializa DataTable en su HTML de <table>esta manera

 $('#tbl').DataTable({
    searching: false, 
    paging: false,
    dom: 'Bfrtip',
    buttons: [
       'copy', 'csv', 'excel', 'pdf', 'print'
    ]
 });
Hitesh Sahu
fuente
1

Podrías ocultarlos a través de css:

#example_info, #example_filter{display: none}
graphicdivine
fuente
No 'equivocado', simplemente diferente. Depende de si desea ocultar todas las instancias (por clase, como en su respuesta), o una instancia particular (por ID, como en la mía).
graphicdivine
1

Puede usar el atributo sDom. El código se parece a esto.

$(document).ready(function() {
    $('#example').dataTable( {
        'sDom': '"top"i'
                 } );
} );

Oculta el cuadro de búsqueda y buscapersonas.

Justget Meinside
fuente
1

A partir de DataTables 1.10.5, ahora es posible definir opciones de inicialización utilizando atributos HTML5 data- *.

- documentación de dataTables: atributos HTML5 data- * - opciones de tabla

Entonces puede especificar data-searching="false" data-paging="false" data-info="false"en el table. Por ejemplo, esta tabla no permitirá buscar, aplicar paginación o mostrar el bloque de información:

<table id="example" class="display" width="100%" data-searching="false" data-paging="false" data-info="false">
    <thead>
        <tr>
            <th>Name</th>
            <th data-orderable="false">Avatar</th>
            <th>Start date</th>
            <th>Salary</th>
        </tr>
    </thead>
    <tbody>
        <tr>
            <td>Tiger Nixon</td>
            <td><img src="https://www.gravatar.com/avatar/8edcff60cdcca2ad650758fa524d4990?s=64&amp;d=identicon&amp;r=PG" alt="" style="width: 64px; height: 64px; visibility: visible;"></td>
            <td>2011/04/25</td>
            <td>$320,800</td>
        </tr>
        <tr>
            <td>Garrett Winters</td>
            <td><img src="https://www.gravatar.com/avatar/98fe9834dcca2ad650758fa524d4990?s=64&amp;d=identicon&amp;r=PG" alt="" style="width: 64px; height: 64px; visibility: visible;"></td>
            <td>2011/07/25</td>
            <td>$170,750</td>
        </tr>
        ...[ETC]...
    </tbody>
</table>

Vea un ejemplo de trabajo en https://jsfiddle.net/jhfrench/17v94f2s/ .

La ventaja de este enfoque es que le permite tener una llamada estándar de tablas de datos (es decir, $('table.apply_dataTables').DataTable()) mientras puede configurar las opciones de tablas de datos tabla por tabla.

Jeromy francés
fuente
0

He hecho esto asignando una identificación al pie de página y luego peinando usando css:

    <table border="1" class="dataTable" id="dataTable_${dtoItem.key}" >
     <thead>
        <tr>
            <th></th>

        </tr>
    </thead>
 <tfoot>
    <tr>
            <th id="FooterHidden"></th>
    </tr>
</tfoot>
<tbody>

    <tr>

                <td class="copyableField"></td>

    </tr>
 </tbody>
</table>

luego peinar usando css:

#FooterHidden{
   display: none;
}

Como se mencionó anteriormente, las formas no funcionan para mí.

nuevoProgramador
fuente
0

Creo que la forma más simple es:

<th data-searchable="false">Column</th>

Puede editar solo la tabla que tiene que modificar, sin cambiar CSS o JS comunes.

WalterV
fuente
0

Si solo desea ocultar el formulario de búsqueda, por ejemplo, porque tiene filtros de entrada de columna o puede ser porque ya tiene un formulario de búsqueda CMS capaz de devolver resultados de la tabla, entonces todo lo que tiene que hacer es inspeccionar el formulario y obtener su id. (al momento de escribir esto, se ve como tal [tableid]-table_filter.dataTables_filter). Luego, simplemente [tableid]-table_filter.dataTables_filter{display:none;}conserve todas las demás características de las tablas de datos.

Herbert Kimani
fuente