1

我制作了一个简单的模块,可以选择在Catalog > Manage Categories > [Catalog Products tab]中放入“编辑”操作列。代码工作正常,但是,它将新列放在表的开头,我希望它在表的末尾(为了美观)。

这是重写(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();新列上方,则根本不会显示新列。

所以我的问题是,如何在将所有列复制到文件中的情况下将这个新列移动到表的末尾

4

2 回答 2

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功能,但在这里没有意义,因为您要在最后添加列。

于 2012-07-13T19:24:40.187 回答
0

另一种方法是使用addColumnAfter. 假设现有网格中的最后一列名为xyz。现在,要在网格末尾添加一个名为的新列myNewColumn,即在 column 之后xyz

protected function _prepareColumns(){
    $this->addColumnAfter('myNewColumn', array(
        'header' => Mage::helper('catalog')->__('My New Column'),
        'index'  => 'myNewColumn'
    ),'xyz');
    return parent::_prepareColumns();
}
于 2016-09-10T07:03:23.753 回答