2012-10-09 53 views
1

我想使用massaction編輯gridview產品值。在這裏我創建了一個這樣的專欄。magento可編輯的網格列值不發佈使用massaction

$this->addColumn('fineness', 
      array(
       'header'=> Mage::helper('catalog')->__('% Increase'), 
       'width' => '80px', 
       'index' => 'fineness', 
       'type' => 'input', 
       'editable' => 'TRUE', 


     )); 

它工作正常,但我怎麼能發佈這些價值massaction?在這裏,我寫行動這樣

$this->getMassactionBlock()->addItem('update', array(
      'label'=> Mage::helper('catalog')->__('Bulk Update'), 
      'url' => $this->getUrl('*/*/massUpdate'), 
      'confirm' => Mage::helper('catalog')->__('Are you sure?'), 

     )); 

所以,我怎麼能在massaction.in我寫了這樣的作用,但不能工作

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

看起來像重複http://stackoverflow.com/questions/12639049/magento-grid-issue – Zyava

+0

它不是一個重複的問題。它的gridview可編輯輸入直接使用massaction更新 –

+0

'我有一個名爲'sort_order'的列'editable'=> true,它添加了一個字段進行編輯,但是如何使它保存到行的值?而且問題都是關於如何從可編輯列輸入提交值。我對嗎? – Zyava

回答

0

我想你可以用一個簡單的解決方案去獲取列值:
只需爲massaction表單創建您自己的模板,然後在那裏更改onclick事件(或爲提交事件添加您自己的偵聽器)。
這裏的想法是使用你自己的JS代碼(你可以在你的新的.phtml文件中包含這個代碼)在提交它之前用你的自定義信息添加一些輸入到massaction表單。

//這將是你的網格內(你可能有這種方法,因爲現在你應該在這裏添加massaction項目:

protected function _prepareMassaction() 
{ 

     // you can use widget/grid/massaction.phtml as a reference 
     $this->getMassactionBlock()->setTemplate('your_custom_template_here.phtml'); 
       ... 

作爲一個方面說明,這是(基本上)如何massaction形式作品:
當你選擇一個輸入框,那將massaction窗體上創建一個input元素,該輸入將有你的選擇的行,以逗號分隔的ID
然後Magento的具有觀察員(聽「adminhtml_controller_action_predispatch_start」)

Mage_Adminhtml_Model_Observer::massactionPrepareKey 

將把逗號分隔值轉換成數組,這就是你如何接收massaction動作中所選項目的數組。

相關問題