1

カタログ > カテゴリの管理 > [カタログ製品タブ]の「編集」アクション列に配置するオプションを持つ単純なモジュールを作成しました。コードは正常に動作しますが、新しい列をテーブルの先頭に配置し、テーブルの最後配置します (美学のため)。

書き換えは次のとおりです (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に移動するにはどうすればよいですか?

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

もう 1 つの方法は、 を使用すること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 に答える