Come indicato dalle altre risposte, è possibile utilizzare il metodo Mage_Adminhtml_Block_Widget_Grid::addColumnAfter
per ottenere ciò.
Tuttavia ciò che (la maggior parte) delle altre risposte non menzionano è che è necessario chiamare esplicitamente Mage_Adminhtml_Block_Widget_Grid::sortColumnsByOrder
in modo che le colonne vengano riordinate.
Procedimento Mage_Adminhtml_Block_Widget_Grid::sortColumnsByOrder
viene chiamato esclusivamente mediante Mage_Adminhtml_Block_Widget_Grid::_prepareColumns
come segue:
/// app/code/core/Mage/Adminhtml/Block/Widget/Grid.php line 557
protected function _prepareColumns()
{
$this->sortColumnsByOrder();
return $this;
}
Ciò significa che la classe derivata dovrà fare lo stesso al fine di ri-ordinare le colonne in base alla propria nuova ordinazione. Ad esempio:
protected function _prepareColumns() {
/// Let the parent add some columns
/// Mage_Eav_Block_Adminhtml_Attribute_Grid_Abstract does add some
parent::_prepareColumns();
/// Add some new columns
$this->addColumnAfter('sort_order', array(
'header' => $this->__('Sort Order'),
'sortable' => true,
'index' => 'sort_order'
), 'frontend_label');
$this->addColumnAfter('attribute_group_name', array(
'header' => $this->__('Attribute Group'),
'sortable' => true,
'index' => 'attribute_group_name'), 'sort_order');
/// ! IMPORTANT ! Re-sort the columns with the new additions
$this->sortColumnsByOrder();
return $this;
}
fonte
2016-10-06 04:03:48
Questo è funziona. – jruzafa
attenzione, l'ordine di chiamare questo prima che il genitore possa essere importante, vedere la risposta di Praful Rajput – peedee