将massAction添加到新的Magento Admin模块后,我被重定向到该模块的主页面而不是我上次的位置。
作为一个例子:我有一个月的下拉菜单,所以我选择“十一月”,然后我从分页中选择“第3页”。然后当我选择并针对一个或多个项目执行操作时,我会被重定向回当前月份,第1页。
我在这篇文章中添加了massAction:http://inchoo.net/ecommerce/magento/how-to-add-massactions-to-magentos-grid/ 以下是我最终的结果:
protected function _prepareMassaction()
{
parent::_prepareMassaction();
$this->setMassactionIdField('entity_id');
$this->getMassactionBlock()->setFormFieldName('value_id');
$this->getMassactionBlock()->addItem('deactivate', array(
'label' => Mage::helper('renewals')->__('Deactivate'),
'url' => $this->getUrl('*/*/massDeactivate'),
'confirm' => Mage::helper('renewals')->__('Are you sure you want to deactivate these accounts?'),
));
return $this;
}
和我的控制器数据:
public function massDeactivateAction()
{
$value_ids = $this->getRequest()->getParam('value_id');
$helper = Mage::helper('helper/data');
foreach ($value_ids as $value_id) {
$helper->deactivateValue($value_id);
}
$this->_redirect('*/*/index');
return;
}
任何想法会导致这种情况不会停留在我当前的页面上? 它正在管理产品页面上工作,但有趣的是,当我点击页面时,页码不会进入URL,因此当我使用GET时,它似乎是通过POST或某个特定页面上的内容提交的。我不确定这是否与问题有关。
答案 0 :(得分:1)
看看@ Custom Module with Custom Database Table
看看你的Grid.php,你是$this->setSaveParametersInSession(true)
还是$this->setUseAjax(true);
class <Namespace>_<Module>_Block_Adminhtml_<Module>_Grid extends Mage_Adminhtml_Block_Widget_Grid
{
public function __construct()
{
parent::__construct();
....
$this->setSaveParametersInSession(true);
$this->setUseAjax(true);
}