como redefinir o filtro ao carregar uma coleção no módulo personalizado magento

9

Eu criei um módulo personalizado no back-end para exibir os resultados da pesquisa de 'imei' na grade do administrador.

1) abaixo é a página inicial para pesquisar imei. insira a descrição da imagem aqui

2) página de resultados da pesquisa.

insira a descrição da imagem aqui

3) após a pesquisa, insiro o valor, por exemplo, 23 na pesquisa de campo de texto imei. insira a descrição da imagem aqui

4) agora vou voltar para a página inicial e procurar outro valor.

insira a descrição da imagem aqui

5) mas agora não recebo registros encontrados, mas há registros para essa pesquisa específica.

insira a descrição da imagem aqui

como isso acontece, tenho que redefinir o filtro ao carregar a coleção.

surya
fonte

Respostas:

3

Edite o arquivo grid.php em seu módulo personalizado,

Por padrão,

public function __construct()
{
 parent::__construct();
 $this->setId('productsGrid');
 // This is the primary key of the database
 $this->setDefaultSort('id');
 $this->setDefaultDir('ASC');
 $this->setSaveParametersInSession(true);
 $this->setUseAjax(true);
}

Mude o código para,

public function __construct()
{
    parent::__construct();
    $this->setId('productsGrid');
    // This is the primary key of the database
    $this->setDefaultSort('id');
    $this->setDefaultDir('ASC');
    $this->setUseAjax(true);
}
saravanavelu
fonte
0

Você precisa passar o valor do filtro base64_encoded para o controlador correspondente. O valor do filtro é processado por Mage_Adminhtml_Block_Widget_Grid::_prepareCollection().

O valor é decodificado primeiro e depois definido na sessão:

    $data = $this->helper('adminhtml')->prepareFilterString($filter);
    $this->_setFilterValues($data);

Eu começaria a instanciar o objeto grid.js. Dê uma olhada nos métodos doFilter()e resetFilter().

netzkollektiv
fonte