6

Mage/Adminhtml/Widget/Grid/Column/Renderer/Concat.php - 有人可以提供它的用法示例吗?例如,它可以用来代替:

$this->addColumn('order_item', array(
  'header'=> $this->__('Order # (Item #)'),
  'sortable'=> true,
  'index'=> 'order_item',
  'filter_index'=> "CONCAT(orders.increment_id, ' (', main_table.item_id, ')')",
  'width'=> '140px',
));
4

3 回答 3

13

谢谢西蒙!addColumn 渲染器在 Mage_Adminhtml_Block_Widget_Grid_Column::_getRendererByType() 中被排除,因此无需手动添加它,尽管知道这很酷。如果我不使用过滤器索引,我仍然会遇到问题,但我确实将代码清理为:

$this->addColumn('order_item', 
    array(
        'header'       => $this->__('Order # -- Item #'),
        'sortable'     => true,
        'index'        => array('increment_id', 'item_id'),
        'type'         => 'concat',
        'separator'    => ' -- ',
        'filter_index' => "CONCAT(orders.increment_id, ' -- ', main_table.item_id)",
        'width'        => '140px',
    )
);
于 2013-06-10T17:50:41.277 回答
1

我认为它应该像renderer. 要连接的列可以设置在数组中index。我认为不可能separators像你想要的那样使用。它在产品网格中进行了测试:

  $this->addColumn('entity_id',
        array(
            'header'=> Mage::helper('catalog')->__('ID'),
            'index' => array('entity_id','sku'),
            'separator'=>'|',
            'renderer' => 'adminhtml/widget_grid_column_renderer_concat',
    ));
于 2013-06-08T08:42:37.337 回答
1

我们可以使用以下方法合并 Grid 中的两列。

$this->addColumn('name', array(
            'header'    =>Mage::helper('customreport')->__('Name'),
            'sortable'  =>true,
            'index'     =>array('firstname', 'lastname'),
            'type'      =>'concat',
            'separator' =>' '
        ));
于 2015-02-05T09:17:23.690 回答