Estoy usando DataTables ( datatables.net ) y me gustaría que mi cuadro de búsqueda esté fuera de la tabla (por ejemplo, en mi div de encabezado).
Es posible ?
                    
                        jquery
                                search
                                datatables
                                filtering
                                
                    
                    
                        Athanasios Emmanouilidis
fuente
                
                
            fuente

$(".dataTables_filter :input").focus().val(value).keypress();en poner enkeyupmi entrada durante aproximadamente una hora, antes de encontrar esto. Nunca pensé en usar la API .. ¡Solución elegante!Según el comentario de @lvkz:
si está utilizando datatable con d mayúscula
.DataTable()(esto devolverá un objeto de API Datatable) use esto:que es la respuesta de @netbrain.
si está usando datatable con d minúscula
.dataTable()(esto devolverá un objeto jquery) use esto:fuente
oTable.fnFilter($(this).val());A mí también me.DataTable()y este:oTable.fnFilter($(this).val());cuando usa.dataTable()La diferencia está en la capital D. ¡Espero que te ayude!oTable.api().search($(this).val()).draw();puede ser útil, especialmente si también desea control manual sobre la paginaciónlength:oTable.api().page.len($(this).val()).draw();Puede usar la
sDomopción para esto.Por defecto con entrada de búsqueda en su propio div:
Si usa jQuery UI (
bjQueryUIconfigurado entrue):Lo anterior pondrá el
inputelemento de búsqueda / filtrado en su propio nombredivcon una clasesearch-boxque está fuera de la tabla real.A pesar de que usa su sintaxis abreviada especial, en realidad puede tomar cualquier HTML que le arrojes.
fuente
'<"search-box"r><"H"lf>t<"F"ip>'no estoy seguro de si existe algo peorlanguage: { search: "example", searchPlaceholder: "example" }Este me ayudó para DataTables Versión 1.10.4, porque su nueva API
fuente
Las versiones más recientes tienen una sintaxis diferente:
Tenga en cuenta que este ejemplo utiliza la variable
tableasignada cuando las tablas de datos se inicializan por primera vez. Si no tiene esta variable disponible, simplemente use:Desde: DataTables 1.10
- Fuente: https://datatables.net/reference/api/search ()
fuente
Esto debería funcionar para usted: (DataTables 1.10.7)
o
fuente
Yo tuve el mismo problema.
Probé todas las alternativas publicadas, pero no funcionó, usé una forma que no es la correcta pero funcionó perfectamente.
Entrada de búsqueda de ejemplo
el código jquery
fuente
Quiero añadir una cosa más a la respuesta de @ NetBrain relevante en caso de que utilice el procesamiento del lado del servidor (ver ServerSide opción).
La limitación de consultas realizada de forma predeterminada por las tablas de datos (consulte la opción searchDelay ) no se aplica a la
.search()llamada a la API. Puede recuperarlo usando $ .fn.dataTable.util.throttle () de la siguiente manera:fuente
Puede mover el div cuando se dibuja la tabla usando la
fnDrawCallbackfunción.fuente
"drawCallback": function (settings) { $(".dataTables_filter").each(function () { $(this).appendTo($(this).parent().siblings(".panel-body")); }); },En
loadtransajax.phppuede recibir el valor de obtener:fuente
Si está utilizando JQuery dataTable, solo necesita agregar
"bFilter":true. Esto mostrará el cuadro de búsqueda predeterminado fuera de la tabla y funcionará dinámicamente ... según lo esperadofuente