我创建了一个观察者,它在管理员的新闻稿网格中添加了一个字段,如下所示:
public function AddItemColumnToGrid($observer)
{
...
if ($_type == 'adminhtml/newsletter_subscriber_grid') {
$_block->addColumnAfter('subscriber_name', array(
'header'=> Mage::helper('newsletter')->__('Name'),
'type' => 'text',
'index' => 'subscriber_name',
), 'subscriber_email');
}
...
}
我无法弄清楚。但是Magento总是在末尾显示我的Subscriber_name字段(作为订单中的最后一个)。 ColumnAfter不起作用。为什么?
我在讨论这件事:
<events>
<adminhtml_block_html_before>
答案 0 :(得分:2)
这是因为在您挂钩HTML代之前就进行了排序:
<强> Mage_Adminhtml_Block_Widget_Grid:强>
protected function _beforeToHtml()
{
$this->_prepareGrid(); // <-- sort columns
return parent::_beforeToHtml(); // <-- dispatch event
}
您可以做的是在添加列后再次排序:
$_block->addColumnAfter('subscriber_name', array(
'header'=> Mage::helper('newsletter')->__('Name'),
'type' => 'text',
'index' => 'subscriber_name',
), 'subscriber_email');
$_block->sortColumnsByOrder();