magentoカスタムモジュールでコレクションを読み込むときにフィルターをリセットする方法


9

バックエンドでカスタムモジュールを作成して、管理グリッドに「imei」の検索結果を表示しました。

1)以下はimeiを検索するためのホームページです。 ここに画像の説明を入力してください

2)検索結果ページ。

ここに画像の説明を入力してください

3)検索した後、imeiテキストフィールド検索に値23を入力します。 ここに画像の説明を入力してください

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

0

フィルター値base64_encodedを対応するコントローラーに渡す必要があります。フィルター値はによって処理されMage_Adminhtml_Block_Widget_Grid::_prepareCollection()ます。

値は最初にデコードされ、次にセッションで設定されます。

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

grid.jsオブジェクトのインスタンス化を開始します。メソッドdoFilter()とを見てくださいresetFilter()

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.