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

 

相关文章
|
SQL 前端开发 JavaScript
|
前端开发 JavaScript 数据可视化
最棒的 7 个 Laravel admin 后台管理系统推荐
Laravel 已经凭借自己的易用性及低门槛成为 github 上 stars 第一的 PHP 框架,本文将介绍我精心为大家挑选出来的 Laravel admin 后台管理系统,从抽象程度最低(灵活但代码量大)到抽象程度最高(代码量小但不灵活)来帮助大家选择合适自己的 Laravel admin 后台管理系统。
2967 0
|
6月前
|
安全 程序员 数据库
程序员必知:xadmin快速搭建后台管理系统
程序员必知:xadmin快速搭建后台管理系统
223 0
|
7月前
|
搜索推荐 Java 关系型数据库
基于SSM的博客系统【带后台管理】
基于SSM的博客系统【带后台管理】
|
JSON 前端开发 搜索推荐
Laravel系列开源Dcat admin礼盒商城后台管理项目
Laravel系列开源Dcat admin礼盒商城后台管理项目
240 0
|
搜索推荐 Java 应用服务中间件
16Solr后台管理界面介绍
16Solr后台管理界面介绍
45 0
|
前端开发 数据库连接 数据库
ThinkPhp5开发实战2:后台管理登录设计
系列文章目录 第一章 ThinkPhp5开发实战1:搭建环境配置TP5框架(持续更新收藏关注) 文章目录系列文章目录前言一、选取合适的前端模板二、资源引用渲染前端1.导入框架引入资源文件2.渲染前端登陆界面三、构造数据库登陆表字段1.设计数据库登录表四、配置数据库连接、添加登录控制器1.TP5连接数据库2.登录控制器3.添加验证码check五、登录演示总结 前言 本文主讲:ThinkPhp5开发实战系列续集:设计登录界面,完成登录操作 对于没有配置开发环境或者TP5框架的同学,请参考文章 [第一章 T
138 0
ThinkPhp5开发实战2:后台管理登录设计
|
数据库 数据库管理
搭建 Zblog 博客系统-4
搭建 Zblog 博客系统-4
138 0
搭建 Zblog 博客系统-4
|
机器学习/深度学习 存储 人工智能
搭建 Zblog 博客系统-1
搭建 Zblog 博客系统-1
502 0
|
数据安全/隐私保护 Windows