jak zresetować filtr przy ładowaniu kolekcji w niestandardowym module magento

9

W backendie utworzyłem niestandardowy moduł do wyświetlania wyników wyszukiwania „imei” w panelu administratora.

1) poniżej znajduje się strona główna do wyszukiwania imei. wprowadź opis zdjęcia tutaj

2) strona wyników wyszukiwania.

wprowadź opis zdjęcia tutaj

3) po wyszukiwaniu wpisuję wartość powiedz na przykład 23 w polu wyszukiwania tekstowego imei. wprowadź opis zdjęcia tutaj

4) teraz wracam do strony głównej i szukam innej wartości.

wprowadź opis zdjęcia tutaj

5) ale teraz nie znaleziono żadnych rekordów, ale istnieją rekordy dla tego konkretnego wyszukiwania.

wprowadź opis zdjęcia tutaj

ponieważ tak się dzieje, muszę zresetować filtr przy ładowaniu kolekcji.

surya
źródło

Odpowiedzi:

3

Edytuj plik grid.php w swoim module niestandardowym,

Domyślnie,

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

Zmień kod na,

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
źródło
0

Musisz przekazać wartość filtru base64_encoded do odpowiedniego kontrolera. Wartość filtru jest przetwarzana przez Mage_Adminhtml_Block_Widget_Grid::_prepareCollection().

Wartość jest najpierw dekodowana, a następnie ustawiana w sesji:

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

Zacznę tworzyć instancję obiektu grid.js. Spójrz na metody doFilter()i resetFilter().

netzkollektiv
źródło