как сбросить фильтр при загрузке коллекции в пользовательский модуль magento

9

Я создал собственный модуль в бэкэнде для отображения результатов поиска imei в сетке администратора.

1) ниже находится домашняя страница для поиска imei. введите описание изображения здесь

2) страница результатов поиска.

введите описание изображения здесь

3) после поиска я ввожу значение скажем, например, 23 в текстовое поле поиска imei. введите описание изображения здесь

4) Теперь я возвращаюсь на домашнюю страницу и ищу другое значение.

введите описание изображения здесь

5) но теперь я не получаю никаких записей, но есть записи для этого конкретного поиска.

введите описание изображения здесь

так как это происходит, я должен сбросить фильтр при загрузке коллекции.

сурйа
источник

Ответы:

3

Отредактируйте файл grid.php в своем пользовательском модуле,

По умолчанию,

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);
}

Измените код на,

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
источник
0

Вам необходимо передать значение фильтра base64_encoded соответствующему контроллеру. Значение фильтра обрабатывается Mage_Adminhtml_Block_Widget_Grid::_prepareCollection().

Значение сначала декодируется, а затем устанавливается в сеансе:

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

Я бы начал создавать экземпляр объекта grid.js. Взгляните на методы doFilter()и resetFilter().

netzkollektiv
источник