Magento管理网格中的复选框过滤

时间:2012-03-08 13:06:58

标签: checkbox filter magento

grid filtering and checkboxes

我有一个Slider模型,有一些相关的图像(模型)。编辑Slider时,它的图像有一个标签。现在可以修改此选项,以选择和取消选择包含图像。这似乎是通过一个管理网格完成的,有一个复选框列(“values”键用于测试):

    $this->addColumn('in_slider', array(
        'header_css_class' => 'a-center',
        'type'      => 'checkbox',
        'name'      => 'in_slider',
        'values'    => array(1,2),
        'align'     => 'center',
        'index'     => 'slider_image_id'
    ));

假设上图中的Slider附有一张图片,效果很好。但是,当用户选择“任意”并单击“搜索”时,所有图像必须显示,但应取消选择那些未关联的图像。我认为这是这种功能的标准行为。

我没有得到的是这两个按钮背后的机制:Reset FilterSearch。从我设法挖掘出来的,网格类有一个getGridUrl()方法,用于刷新网格数据(通过AJAX)。该URL映射到控制器。

// in grid class
public function getGridUrl()
{
    return $this->getUrl('*/*/editGrid', array('_current' => true));
}

// Image controller
public function editGridAction()
{
    $blockMarkup = $this->getLayout()->createBlock('module/someblock')->toHtml();
    $this->getResponse()->setBody($blockMarkup);
}

但是“搜索”按钮怎么样?这是如何工作的?

其他模块如何知道何时显示所有实体,或搜索“是”或“否”?

保存滑块时,如何获取所选值?在Slider控制器的saveAction中工作,我猜想,但是如何获得复选框值?

1 个答案:

答案 0 :(得分:0)

您正在寻找的是群众行动。将此函数添加到您的网格文件(无论扩展Mage_Adminhtml_Block_Weidget_Grid):

protected function _prepareMassaction()
{
  $this->setMassactionIdField('some_ID');
  $this->getMassactionBlock()->setFormFieldName('element_name');  //html name of checkbox
  $this->getMassactionBlock()->addItem('some_ID', array(
    'label'=> __('Some Label'),
    'url'  => $this->getUrl('*/*/doSomething'),   //an action defined in the controller
    'selected' => 'selected',
    'confirm' => __('Are you sure?')
  ));

  return $this;
}

这是一篇很好的博客文章,有助于解释这个概念: http://inchoo.net/ecommerce/magento/how-to-add-massactions-to-magentos-grid/