Magento 添加后台管理 addColumn

复选框

Java代码   收藏代码
  1. $row->getData($this->getColumn()->getIndex())   
Java代码   收藏代码
  1. $this->addColumn('in_products', array(  
  2.     'header_css_class' => 'a-center',  
  3.     'type' => 'checkbox',//datetime,date ,number  
  4.     'field_name' => 'in_products',//checkbox name  
  5.     'align' => 'center',  
  6.     'index' => 'type',  
  7.     'values' => array(1), //checked value list  
  8.     'disabled_values' => array(13),  
  9.     'use_index' => true//checkvalue=type false=pkid  
  10. ));  

下拉选框

Java代码   收藏代码
  1. $this->addColumn('status',  
  2.     array(  
  3.         'header'=> Mage::helper('catalog')->__('Status'),  
  4.         'width' => '70px',  
  5.         'index' => 'status',  
  6.         'type'  => 'options',  
  7.         'options' => array('new'=>'待发货','sending'=>'发货中','complete'=>'完成')  
  8. ));  

 自定义一列的内容

Java代码   收藏代码
  1. protected function _prepareColumns() {  
  2.     $this->addColumn('address', array(  
  3.         'header' => '地址',  
  4.         'width' => '200',  
  5.         'index' => 'address',  
  6.         'renderer' => Test_Dispatching_Block_Adminhtml_Widget_Grid_Column_Renderer_Address  
  7.     ));  
  8.     return parent::_prepareColumns();  
  9. }  
  10.   
  11. protected function _setFilterValues($data) { //自定义搜索  
  12.     foreach ($this->getColumns() as $columnId => $column) {  
  13.         if ($columnId == 'address' && isset($data[$columnId]) && strlen($data[$columnId]) > 0) {  
  14.             $fields = array('province' => 'province''city' => 'city''street' => 'street');  
  15.             $condition = array();  
  16.             $condition['province'] = array('like' => '%' . $data['address'] . '%');  
  17.             $condition['city'] = array('like' => '%' . $data['address'] . '%');  
  18.             $condition['street'] = array('like' => '%' . $data['address'] . '%');  
  19.             $this->getCollection()->addFieldToFilter($fields, $condition);  
  20.             $column->getFilter()->setValue($data[$columnId]);  
  21.             continue;  
  22.         }  
  23.         if (isset($data[$columnId]) && (!empty($data[$columnId]) || strlen($data[$columnId]) > 0) && $column->getFilter()) {  
  24.             $column->getFilter()->setValue($data[$columnId]);  
  25.             $this->_addColumnFilterToCollection($column);  
  26.         }  
  27.     }  
  28.     return $this;  
  29. }  

页面显示样式local/Test/Dispatching/Block/Adminhtml/Widget/Grid/Column/Renderer/Address.php

Java代码   收藏代码
  1. <?php  
  2.   
  3. class Test_Dispatching_Block_Adminhtml_Widget_Grid_Column_Renderer_Address extends Mage_Adminhtml_Block_Widget_Grid_Column_Renderer_Abstract  
  4. {  
  5.   
  6.     public function render(Varien_Object $row)  
  7.     {  
  8.         $text = $row['province'] . $row['city'] . $row['county'] .$row['street'];  
  9.         return $text;  
  10.     }  
  11. }  

 让Action根据行动态值显示action列表

Php代码   收藏代码
  1. $this->addColumn('action'array(  
  2.     'header' => '操作',  
  3.     'width' => '50px',  
  4.     'type' => 'action',  
  5.     'getter' => 'getId'//action['field']的值  
  6.     'actions' => array(  
  7.         array(  
  8.             'caption' => '删除',  
  9.             'url' => array('base' => '*/*/delete', /*'params'=>array('type'=>1)*/), //其他参数  
  10.             'field' => 'order_id',  
  11.             'filter' => array('status' => 'new'//出现的条件  
  12.         )  
  13.     ),  
  14.     'filter' => false,  
  15.     'sortable' => false,  
  16.     'index' => 'stores',  
  17.     'is_system' => true,  
  18.     'renderer' => Test_Dispatching_Block_Adminhtml_Widget_Grid_Column_Renderer_Action  
  19. ));  

 

 local/Test/Dispatching/Block/Adminhtml/Widget/Grid/Column/Renderer/Action.php

Java代码   收藏代码
  1. <?php  
  2.   
  3. class Test_Dispatching_Block_Adminhtml_Widget_Grid_Column_Renderer_Action extends Mage_Adminhtml_Block_Widget_Grid_Column_Renderer_Action  
  4. {  
  5.     public function render(Varien_Object $row)  
  6.     {   
  7.         $actions = $this->getColumn()->getActions();  
  8.         if ( empty($actions) || !is_array($actions) ) {  
  9.             return '&nbsp;';  
  10.         }  
  11.   
  12.         $i = 0;  
  13.         foreach ($actions as $action){            
  14.             if ( is_array($action) ) {  
  15.                 if($this->_checkFiterAction($action, $row)) continue;  
  16.                 if($i>0){  
  17.                     $out .="&nbsp;|&nbsp;";  
  18.                 }  
  19.                 $out .= parent::_toLinkHtml($action, $row);  
  20.             }  
  21.             $i++;  
  22.         }   
  23.         return $out;  
  24.     }  
  25.         
  26.     protected function _checkFiterAction($action, Varien_Object $row){  
  27.         $result = false;  
  28.         if(isset($action['filter']) && is_array($action['filter'])){  
  29.             foreach($action['filter'] as $key => $filter){  
  30.                 if($row[$key] != $filter){  
  31.                     $result = true;  
  32.                 }   
  33.             }  
  34.         }   
  35.         return $result;  
  36.     }  
  37. }  

要实现各种功能就需要继承renderer

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值