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.

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

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().

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.