Lançado Adianti Framework 7.6!
Clique aqui para saber mais
Limpar filtro em datagrid Pessoal, vi diversos posts no forum perguntando como limpar o filtro de um datagrid e recarregar a listagem depois. Há casos em que foi realizado apenas limpeza dos campos sem recarregar o datagrid, e outros em que houve muita alteração nos métodos onSearch, onReload. Contudo há uma maneira bem simples, apenas setando o método onClear na classe de Listagem. Adicione o botão no formulá...
HA
Limpar filtro em datagrid  
Pessoal, vi diversos posts no forum perguntando como limpar o filtro de um datagrid e recarregar a listagem depois.
Há casos em que foi realizado apenas limpeza dos campos sem recarregar o datagrid, e outros em que houve muita alteração nos métodos onSearch, onReload.
Contudo há uma maneira bem simples, apenas setando o método onClear na classe de Listagem.

Adicione o botão no formulário:

  1. <?php
  2.     $this->form->addQuickAction(_t('Clean'),  new TAction(array($this'onClear')), 'fa:eraser red');
  3. ?>


Depois o método:

  1. <?php
  2.     public function onClear($param)
  3.     {
  4.         $fields $this->form->getFields();
  5.         foreach($fields as $field) {
  6.             TSession::setValue($this->activeRecord.'_filter_'.$field->getName(), NULL);
  7.             TSession::setValue($this->activeRecord.'_filter_data'NULL);
  8.         }
  9.         $this->form->clear();
  10.         $this->onReload();
  11.     }
  12. ?>


Primeiro pega-se todos os campos do formulário, e faz um foreach. De modo simples, setamos os valores dos campos do formulário na sessão de forma dinâmica, pegando pelo activeRecord, concatenando com o filter e nome do campo. Desse modo podemos reaproveitar esse código para todas as classes.

Espero que ajude!

Pacotão Dominando o Adianti Framework 7
O material mais completo de treinamento do Framework.
Curso em vídeo aulas + Livro completo + Códigos fontes do projeto ERPHouse.
Conteúdo Atualizado! Versão 7.4


Dominando o Adianti 7 Quero me inscrever agora!

Comentários (3)


RR

Excelente!
CM

Boa noite Henrique, ainda em 2021 pegando essa dica Excelente e aplicando em meus sistemas.
O único que funciona como tem que ser e simples de aplicar. Deveria já vir no Adianti essa função para Grid.
Parabéns irmão!
JP

Olá,

Implementei este trecho de código na minha página da datagrid porém o filtro ainda continua preenchido e não consigo resolver.
Alguém tem alguma outra solução para a limpeza dos filtros?
Grato