2012-03-08 138 views
1

grid filtering and checkboxes複選框在Magento管理網格

過濾我有一些相關的圖片(產品類型)的滑蓋機型。編輯滑塊時,其圖像有一個標籤。現在可以修改,選擇和取消選擇包含圖像。這,似乎是通過管理員電網做,有一個複選框列(「值」鍵是用於測試):

$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' 
    )); 

比方說,滑塊在上面的圖片有一個圖像連接,而作品精細。但是,當用戶選擇「任何」並點擊「搜索」時,全部圖像必須顯示,但那些不相關的圖像應該被取消選擇。我認爲這是這種功能的標準行爲。

我沒有得到的是這兩個按鈕背後的機制: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); 
} 

但是「搜索」按鈕怎麼樣?這是如何運作的?

其他模塊如何知道何時顯示所有實體或搜索「是」或「否」?

保存滑塊時,如何抓取選定的值?在滑塊控制器的工作saveAction我認爲,但你如何獲得複選框的值?

回答

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/