Estou usando DataTables ( datatables.net ) e gostaria que minha caixa de pesquisa estivesse fora da tabela (por exemplo, em meu div de cabeçalho).
Isso é possível ?
jquery
search
datatables
filtering
Athanasios Emmanouilidis
fonte
fonte
$(".dataTables_filter :input").focus().val(value).keypress();
nakeyup
minha entrada por cerca de uma hora, antes de encontrar isso. Nunca pensei em usar a API .. Solução elegante!De acordo com o comentário @lvkz:
se você estiver usando uma tabela de dados com d maiúsculo
.DataTable()
(isso retornará um objeto da API Datatable), use isto:que é a resposta @netbrain.
se você estiver usando tabela de dados com d minúsculo
.dataTable()
(isso retornará um objeto jquery), use isto:fonte
oTable.fnFilter($(this).val());
Funcionou para mim também,.DataTable()
e este:oTable.fnFilter($(this).val());
quando você usa.dataTable()
A diferença fica na capital D. Espero que ajude!oTable.api().search($(this).val()).draw();
Pode ser útil, especialmente se você quiser controle manual sobre a paginaçãolength
também:oTable.api().page.len($(this).val()).draw();
Você pode usar a
sDom
opção para isso.Padrão com entrada de pesquisa em seu próprio div:
Se você usar jQuery UI (
bjQueryUI
definido comotrue
):O exemplo acima irá colocar o
input
elemento de pesquisa / filtragem em seu próprio,div
com uma classe nomeadasearch-box
que está fora da tabela real.Mesmo que ele use sua sintaxe abreviada especial, ele pode, na verdade, aceitar qualquer HTML que você jogar nele.
fonte
'<"search-box"r><"H"lf>t<"F"ip>'
não tem certeza se algo pior existelanguage: { search: "example", searchPlaceholder: "example" }
Este me ajudou para DataTables Versão 1.10.4, porque sua nova API
fonte
As versões mais recentes têm uma sintaxe diferente:
Observe que este exemplo usa a variável
table
atribuída quando as tabelas de dados são inicializadas pela primeira vez. Se você não tiver essa variável disponível, basta usar:Desde: DataTables 1.10
- Fonte: https://datatables.net/reference/api/search ()
fonte
Isso deve funcionar para você: (DataTables 1.10.7)
ou
fonte
Eu tive o mesmo problema.
Tentei todas as alternativas postadas, mas não deu certo, usei um caminho que não está certo mas funcionou perfeitamente.
Exemplo de entrada de pesquisa
o código jquery
fonte
Quero acrescentar mais uma coisa à resposta do @netbrain relevante no caso de você usar o processamento do lado do servidor (ver serverSide opção ).
A limitação de consulta executada por padrão por tabelas de dados (consulte a opção searchDelay ) não se aplica à
.search()
chamada de API. Você pode recuperá-lo usando $ .fn.dataTable.util.throttle () da seguinte maneira:fonte
Você pode mover o div quando a tabela é desenhada usando a
fnDrawCallback
função.fonte
"drawCallback": function (settings) { $(".dataTables_filter").each(function () { $(this).appendTo($(this).parent().siblings(".panel-body")); }); },
Em
loadtransajax.php
você pode receber o valor get:fonte
Se você estiver usando JQuery dataTable, então você precisa apenas adicionar
"bFilter":true
. Isso exibirá a caixa de pesquisa padrão fora da tabela e funciona dinamicamente .. conforme o esperadofonte