我制作了一个简单的模块,可以选择在目录>中添加“编辑”操作列。管理类别> [目录产品标签] 。代码工作正常,但是,它将新列放在表的开头,我希望它在表的 end 处(美学)。
这是重写(Product.php):
class [Company]_[Namespace]_Block_Catalog_Category_Tab_Product extends Mage_Adminhtml_Block_Catalog_Category_Tab_Product
{
protected function _prepareColumns() {
$this->addColumn('action',
array(
'header' => Mage::helper('catalog')->__('Action'),
'width' => '50px',
'type' => 'action',
'getter' => 'getId',
'actions' => array(
array(
'caption' => Mage::helper('catalog')->__('Edit'),
'url' => array(
'base'=>'*/catalog_product/edit',
'params'=>array('store'=>$this->getRequest()->getParam('store'))
),
'field' => 'id'
)
),
'filter' => false,
'sortable' => false,
'index' => 'stores',
));
return parent::_prepareColumns();
}
}
如果我将return parent::_prepareColumns();
移到新列上方,则新列根本不会显示。
所以我的问题是,如何在不将将所有列复制到文件中的情况下将此新列移动到表的 END ?
答案 0 :(得分:0)
protected function _prepareColumns()
{
parent::_prepareColumns();
$this->addColumn('action',
array(
'header' => Mage::helper('catalog')->__('Action'),
'width' => '50px',
'type' => 'action',
'getter' => 'getId',
'actions' => array(
array(
'caption' => Mage::helper('catalog')->__('Edit'),
'url' => array(
'base'=>'*/catalog_product/edit',
'params'=>array('store'=>$this->getRequest()->getParam('store'))
),
'field' => 'id'
)
),
'filter' => false,
'sortable' => false,
'index' => 'stores',
));
return $this;
}
还有addColumnsOrder
功能,但是在这里没有任何意义,因为你要在最后添加列。
答案 1 :(得分:0)
另一种方法是使用addColumnAfter
。假设,现有网格中的最后一列名为xyz
。现在,要将名为myNewColumn
的新列添加到网格的末尾,即在列xyz
之后:
protected function _prepareColumns(){
$this->addColumnAfter('myNewColumn', array(
'header' => Mage::helper('catalog')->__('My New Column'),
'index' => 'myNewColumn'
),'xyz');
return parent::_prepareColumns();
}