2013-06-07 23 views
5

Mage/Adminhtml/Widget/Gitter/Spalte/Renderer/Concat.php - kann jemand bitte ein Beispiel für seine Verwendung geben? Zum Beispiel kann es anstelle von verwendet werden:Wie verwende ich den 'concat'-Typ in der addColumn() -Methode beim Erstellen eines Gitters?

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

Antwort

12

Danke Simon! Die addColumn-Renderer sind in Mage_Adminhtml_Block_Widget_Grid_Column :: _ getRendererByType() enthalten, so dass es nicht notwendig ist, sie manuell hinzuzufügen, obwohl das sehr cool zu wissen ist. Ich hatte immer noch Probleme, wenn ich den Filterindex aufhörte, aber ich habe den Code dieses aufzuräumen:

$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

Gut zu wissen, auch. Thought 'type' war eine Referenz auf den Typ der Tabellenspalte, aber es macht durchaus Sinn. Bitte markieren Sie Ihre Frage als gelöst. –

+0

Wie würde ich das tun? Ich sehe keinen offensichtlichen Link oder Knopf ... – monkeygod

+0

Unter dem Hoch/Runter-Pfeil Ihrer Antwort sollte ein Häkchen stehen. –

1

ich denke, es sollte wie jeder Renderer in renderer verwendet werden. Die zu verkettenden Spalten können in einem Array in index festgelegt werden. Ich denke, es ist nicht möglich, separators zu verwenden, wie Sie möchten. Es wurde im Produktraster getestet:

$this->addColumn('entity_id', 
     array(
      'header'=> Mage::helper('catalog')->__('ID'), 
      'index' => array('entity_id','sku'), 
      'separator'=>'|', 
      'renderer' => 'adminhtml/widget_grid_column_renderer_concat', 
    )); 
0

Wir zwei Spalten in Grid zusammenführen können unter Methode.

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

Sie vermissen den 'filter_index', daher ist es nicht möglich diese Spalte zu filtern. –

+0

Ja, um die Spalte zu filtern, muss filter_index hinzugefügt werden. Ich habe es nur zur Anzeige verwendet. – Digisha