复选框
$row->getData($this->getColumn()->getIndex())
$this->addColumn('in_products', array( 'header_css_class' => 'a-center', 'type' => 'checkbox',//datetime,date ,number 'field_name' => 'in_products',//checkbox name 'align' => 'center', 'index' => 'type', 'values' => array(1), //checked value list 'disabled_values' => array(1, 3), 'use_index' => true, //checkvalue=type false=pkid ));
下拉选框
$this->addColumn('status', array( 'header'=> Mage::helper('catalog')->__('Status'), 'width' => '70px', 'index' => 'status', 'type' => 'options', 'options' => array('new'=>'待发货','sending'=>'发货中','complete'=>'完成') ));
自定义一列的内容
protected function _prepareColumns() { $this->addColumn('address', array( 'header' => '地址', 'width' => '200', 'index' => 'address', 'renderer' => Test_Dispatching_Block_Adminhtml_Widget_Grid_Column_Renderer_Address )); return parent::_prepareColumns(); } protected function _setFilterValues($data) { //自定义搜索 foreach ($this->getColumns() as $columnId => $column) { if ($columnId == 'address' && isset($data[$columnId]) && strlen($data[$columnId]) > 0) { $fields = array('province' => 'province', 'city' => 'city', 'street' => 'street'); $condition = array(); $condition['province'] = array('like' => '%' . $data['address'] . '%'); $condition['city'] = array('like' => '%' . $data['address'] . '%'); $condition['street'] = array('like' => '%' . $data['address'] . '%'); $this->getCollection()->addFieldToFilter($fields, $condition); $column->getFilter()->setValue($data[$columnId]); continue; } if (isset($data[$columnId]) && (!empty($data[$columnId]) || strlen($data[$columnId]) > 0) && $column->getFilter()) { $column->getFilter()->setValue($data[$columnId]); $this->_addColumnFilterToCollection($column); } } return $this; }
页面显示样式local/Test/Dispatching/Block/Adminhtml/Widget/Grid/Column/Renderer/Address.php
<?php class Test_Dispatching_Block_Adminhtml_Widget_Grid_Column_Renderer_Address extends Mage_Adminhtml_Block_Widget_Grid_Column_Renderer_Abstract { public function render(Varien_Object $row) { $text = $row['province'] . $row['city'] . $row['county'] .$row['street']; return $text; } }
让Action根据行动态值显示action列表
$this->addColumn('action', array( 'header' => '操作', 'width' => '50px', 'type' => 'action', 'getter' => 'getId', //action['field']的值 'actions' => array( array( 'caption' => '删除', 'url' => array('base' => '*/*/delete', /*'params'=>array('type'=>1)*/), //其他参数 'field' => 'order_id', 'filter' => array('status' => 'new') //出现的条件 ) ), 'filter' => false, 'sortable' => false, 'index' => 'stores', 'is_system' => true, 'renderer' => Test_Dispatching_Block_Adminhtml_Widget_Grid_Column_Renderer_Action ));
local/Test/Dispatching/Block/Adminhtml/Widget/Grid/Column/Renderer/Action.php
<?php class Test_Dispatching_Block_Adminhtml_Widget_Grid_Column_Renderer_Action extends Mage_Adminhtml_Block_Widget_Grid_Column_Renderer_Action { public function render(Varien_Object $row) { $actions = $this->getColumn()->getActions(); if ( empty($actions) || !is_array($actions) ) { return ' '; } $i = 0; foreach ($actions as $action){ if ( is_array($action) ) { if($this->_checkFiterAction($action, $row)) continue; if($i>0){ $out .=" | "; } $out .= parent::_toLinkHtml($action, $row); } $i++; } return $out; } protected function _checkFiterAction($action, Varien_Object $row){ $result = false; if(isset($action['filter']) && is_array($action['filter'])){ foreach($action['filter'] as $key => $filter){ if($row[$key] != $filter){ $result = true; } } } return $result; } }
要实现各种功能就需要继承renderer