我想使用massaction编辑gridview产品值。在这里我创建了一个这样的列。
$this->addColumn('fineness',
array(
'header'=> Mage::helper('catalog')->__('% Increase'),
'width' => '80px',
'index' => 'fineness',
'type' => 'input',
'editable' => 'TRUE',
));
它工作正常,但我怎样才能将这些价值发布到按摩?在这里我写了这样的动作
$this->getMassactionBlock()->addItem('update', array(
'label'=> Mage::helper('catalog')->__('Bulk Update'),
'url' => $this->getUrl('*/*/massUpdate'),
'confirm' => Mage::helper('catalog')->__('Are you sure?'),
));
那么如何才能在massaction中获得列值。在我这样写的动作中却没有工作
public function massUpdateAction()
{
$productIds = $this->getRequest()->getParam('product');
$increase_fineness = $this->getRequest()->getParam('increase_fineness');
$fineness = $this->getRequest()->getParam('fineness');
print_r($fineness);die;
}
答案 0 :(得分:0)
我认为你可以采用更简单的解决方案:
只需为massaction表单创建自己的模板,然后在那里更改onclick事件(或为submit事件添加自己的监听器)。
这里的想法是使用您自己的JS代码(您可以在新的.phtml中包含它),在提交之前使用您的自定义信息向massaction表单添加一些输入。
//这将在你的网格内(你现在可能有这个方法,因为你应该在这里添加按摩项目:
protected function _prepareMassaction()
{
// you can use widget/grid/massaction.phtml as a reference
$this->getMassactionBlock()->setTemplate('your_custom_template_here.phtml');
...
作为旁注,这是(基本上)按摩形式如何运作:
当您选择输入复选框时,它将在按摩表单上创建一个输入元素,此输入将包含所选行的ID,以逗号分隔。
然后Magento有一个观察者(听“adminhtml_controller_action_predispatch_start”)
Mage_Adminhtml_Model_Observer::massactionPrepareKey
将逗号分隔值转换为数组,这就是您在massaction Action中接收所选项目数组的方式。