我在magento中创建了一个自定义模块。当我点击网格时,它会移动到编辑表单,在那里我可以看到三个标签,如tab1,tab2,tab3.By默认tab1被选中。现在我想在网格上添加一个链接当客户点击该链接时,浏览器会将用户重定向到tab3。我该怎么做。我的标签代码如下:
protected function _beforeToHtml()
{
$this->addTab('form_section', array(
'label' => Mage::helper('mymodule')->__('Information'),
'title' => Mage::helper('mymodule')->__('Information'),
'content' => $this->getLayout()->createBlock('mymodule/adminhtml_mymodule_edit_tab_form')->toHtml(),
));
$this->addTab('form_section1', array(
'label' => Mage::helper('mymodule')->__(' Management'),
'title' => Mage::helper('mymodule')->__('Management'),
'content' => $this->getLayout()->createBlock('mymodule/adminhtml_mymodule_edit_tab_managment')->toHtml(),
));
$this->addTab('form_section2', array(
'label' => Mage::helper('mymodule')->__('Results'),
'title' => Mage::helper('mymodule')->__('Results'),
'content' => $this->getLayout()->createBlock('mymodule/adminhtml_mymodule_edit_tab_result')->toHtml(),
));
return parent::_beforeToHtml();
}
我的链接代码就像网格列表页面上的那个。 <a class="viewit" href="http://localhost/project/index.php/mymodule/adminhtml_mymodule/view/id/4/key/83063e416ef7f9cfb7825d01e4519293/">View</a>
。我的控制器功能为:
public function viewAction()
{
$this->loadLayout();
$block = $this->getLayout()->createBlock('mymodule/adminhtml_mymodule_edit_tab_result');
// $this->_addContent($this->getLayout()->createBlock('mymodule/adminhtml_mymodule_edit_tab_result'))
//->_addLeft($this->getLayout()->createBlock('mymodule/adminhtml_mymodule_edit_tabs'));
$this->getLayout()->getBlock('content')->append($block);
$this->renderLayout();
}
答案 0 :(得分:4)
Mage_Adminhtml_Block_Widget_Tabs::addTab处的代码表明标签包含属性active
。尝试将其添加到addTab
来电:
$this->addTab('form_section2', array(
'label' => Mage::helper('mymodule')->__('Results'),
'title' => Mage::helper('mymodule')->__('Results'),
'content' => $this->getLayout()->createBlock('mymodule/adminhtml_mymodule_edit_tab_result')->toHtml(),
'active' => true
));
或者您可以将参数activeTab
设置为'form_section2'(活动标签的名称)的网格行URL扩展,并将以下代码添加到_beforeToHtml
Tabs
函数中block class:
$param = Mage::app()->getRequest()->get('activeTab');
if (array_key_exists($param, $this->_tabs)) {
$this->_tabs[$param]->setActive();
}