如何在magento管理员中更改网格表单中后退按钮的url?

如何在magento管理员中更改网格表单中后退按钮的url?,magento,magento-1.7,adminhtml,Magento,Magento 1.7,Adminhtml,我正在使用Magento社区版1.7版 我在管理面板中有一个网格。 现在,当我点击这个URL时,它会在左侧边栏中打开一个带有两个选项卡的表单。 当我单击第二个选项卡时,它会在其右侧显示一个网格 然后我点击这个网格的一行,它会在另一个页面上打开一个表单。 在这个表单中有后退按钮 protected function _construct() { $this->_objectId = 'row_id'; $this->_blockGroup = 'Namespace_Mo

我正在使用Magento社区版1.7版

我在管理面板中有一个网格。 现在,当我点击这个URL时,它会在左侧边栏中打开一个带有两个选项卡的表单。 当我单击第二个选项卡时,它会在其右侧显示一个网格

然后我点击这个网格的一行,它会在另一个页面上打开一个表单。 在这个表单中有后退按钮

protected function _construct()
{
    $this->_objectId = 'row_id';
    $this->_blockGroup = 'Namespace_Modulename';
    $this->_controller = 'adminhtml_grid';
    parent::_construct();
    if ($this->_isAllowedAction('Namespace_Modulename::add_row')) {
        $this->buttonList->update('save', 'label', __('Save'));
    } else {
        $this->buttonList->remove('save');
    }
    /**
     * Below line to change your back url of grid
     */
    $this->buttonList->update('back', 'onclick', 'setLocation(\'' . $this->getUrl('*/*/index') . '\')');
}

如何将其URL更改为上一页?

添加自定义后退按钮并删除表单容器类构造函数中的默认按钮

$data = array(
        'label' =>  'Back',
        'onclick'   => 'setLocation(\'' . $this->getUrl('*/*/*') . '\')',
        'class'     =>  'back'
   );
$this->addButton ('my_back', $data, 0, 100,  'header'); 
...
parent::__construct();
...
$this->_removeButton('back');

只需覆盖默认的后退按钮:

parent::__construct();

$data = array(
        'label' =>  'Back',
        'onclick'   => 'setLocation(\'' . $this->getUrl('*/*/*') . '\')',
        'class'     =>  'back'
   );
$this->addButton ('back', $data, 0, 100,  'header'); 

注意
parrent::u construct()的位置

只需覆盖
getBackUrl
函数:

class [Namespace]_[Module]_Block_Adminhtml_[CustomBlock] extends Mage_Adminhtml_Block_Widget_Form_Container
{

/** code **/

public function getBackUrl()
    {
        parent::getBackUrl();
        return $this->getUrl('[New URL]');
    }

/** code **/
}

注:在Magento版本中测试。1.9.1.0这里是更改后退按钮url的最简单方法

protected function _construct()
{
    $this->_objectId = 'row_id';
    $this->_blockGroup = 'Namespace_Modulename';
    $this->_controller = 'adminhtml_grid';
    parent::_construct();
    if ($this->_isAllowedAction('Namespace_Modulename::add_row')) {
        $this->buttonList->update('save', 'label', __('Save'));
    } else {
        $this->buttonList->remove('save');
    }
    /**
     * Below line to change your back url of grid
     */
    $this->buttonList->update('back', 'onclick', 'setLocation(\'' . $this->getUrl('*/*/index') . '\')');
}

我认为没有必要调用parent方法。这个答案不应该被接受吗?它使用提供的特定方法来处理此问题。其他答案建议在完全重建背部时采取不必要的路径。