如何在magento自定义模块中加载集合时重置过滤器


9

我在后端创建了一个自定义模块,以在管理网格中显示“ imei”的搜索结果。

1)是搜索imei的主页。 在此处输入图片说明

2)搜索结果页面。

在此处输入图片说明

3)搜索后,我在imei文本字段搜索中输入值,例如说23。 在此处输入图片说明

4)现在我回到首页并搜索另一个值。

在此处输入图片说明

5)但现在我没有找到任何记录,但是有该特定搜索的记录。

在此处输入图片说明

由于发生这种情况,我必须在加载集合时重置过滤器。

Answers:


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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.