2013-06-07 3 views
5

Mage/Adminhtml/Widget/Grid/Column/Renderer/Concat.php - может ли кто-нибудь указать пример его использования? Например, она может быть использована вместо:Как использовать тип 'concat' в методе addColumn() при построении сетки?

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

ответ

12

Thanks Simon! Средство рендеринга 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', 
    ) 
); 
+0

Приятно знать, тоже. Мысль 'type' была ссылкой на тип столбца таблицы, но это имеет смысл. Пожалуйста, отметьте свой вопрос как решенный. –

+0

Как мне это сделать? Я не вижу явной ссылки или кнопки ... – monkeygod

+0

Под стрелкой вверх/вниз ваш ответ должен быть галочкой. –

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', 
    )); 
0

Мы можем объединить два столбца в сетке, используя метод ниже.

$this->addColumn('name', array(
      'header' =>Mage::helper('customreport')->__('Name'), 
      'sortable' =>true, 
      'index'  =>array('firstname', 'lastname'), 
      'type'  =>'concat', 
      'separator' =>' ' 
     )); 
+1

Вы пропускаете 'filter_index', поэтому его невозможно отфильтровать. –

+0

Да для фильтрации столбца необходимо добавить filter_index. Я использовал его только для показа. – Digisha

 Смежные вопросы

  • Нет связанных вопросов^_^