我目前在Magento后端的自定义产品列表工作。
下面是我目前用来添加一行的代码:
$this->addColumn('action_widget',
array(
'header' => Mage::helper('catalog')->__('Action'),
'width' => '110px',
'type' => 'action',
'getter' => 'getId',
'actions' => array(
array(
'caption' => Mage::helper('catalog')->__('Create Widget'),
'url' => array(
'base'=>'*/*/create_widget',
'params'=>array('store'=>$this->getRequest()->getParam('store'))
),
'field' => 'id'
)
),
'filter' => false,
'sortable' => false,
'index' => 'stores',
));
这已经是首选了。
但现在我想在小部件已经创建时显示另一个操作链接(更新小部件),而不是创建链接。为了知道小部件已经创建,我将一个属性加入到集合中,当它不存在时,该属性为null,当它存在时,该属性为字符串。
我已经尝试使用自定义网格模板文件,将{actionAssign} '变量'放入URL并在模板中分配,但magento URL验证拒绝了这一点。
有没有什么方法可以做到这一点,而不需要一个巨大的工作区?
如果没有,是否可以根据我的产品集合中的属性创建禁用链接?
感谢大家!MRU
4条答案
按热度按时间xhv8bpkk1#
您需要为此创建自定义网格列渲染器:
1.创建类并覆盖_transformerData()或render()方法,这取决于你到底需要什么:
1.告诉magento为这个列使用自定义渲染器:
qojgxg4l2#
下面的代码是为我工作。
8fsztsew3#
对于那些尝试了Zyava的答案并且它不起作用的人,你可能需要这样做:
我不知道窃听器在哪里,因为这应该没有必要,但是...是为了我
pxiryf3j4#
有一个更简单的方法: