【问题标题】:How to change url of back button in grid form in admin of magento?如何在magento的管理员中以网格形式更改后退按钮的url?
【发布时间】:2014-01-09 00:42:30
【问题描述】:

我正在使用 Magento 社区版 1.7 版。

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

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

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

【问题讨论】:

    标签: magento magento-1.7 adminhtml


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

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

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

      注意parrent::__construct();的位置

      【讨论】:

        【解决方案3】:

        只需要重写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

        【讨论】:

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

        这是更改后退按钮网址的最简单方法。

        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') . '\')');
        }
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2011-07-07
          • 1970-01-01
          • 2015-08-12
          • 2021-04-24
          • 1970-01-01
          • 2010-09-15
          • 1970-01-01
          相关资源
          最近更新 更多