Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/magento/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Magento后端产品列表网格_Magento - Fatal编程技术网

Magento后端产品列表网格

Magento后端产品列表网格,magento,Magento,有人知道如何将包含输入类型文本元素或下拉元素的字段添加到magento后端产品列表网格中吗? 我成功地向自定义模块后端产品列表网格添加了一个新列,如下所示: $this->addColumn('blabla', array( 'header' => Mage::helper('customer')->__('On Hold?'), 'width' => '120', 'index' => 'bla',

有人知道如何将包含输入类型文本元素或下拉元素的字段添加到magento后端产品列表网格中吗? 我成功地向自定义模块后端产品列表网格添加了一个新列,如下所示:

$this->addColumn('blabla', array(
        'header'  => Mage::helper('customer')->__('On Hold?'),
        'width'   => '120',
        'index'   => 'bla',
        'type'    => 'options',
        'options' => array('1' => 'Yes', '0' => 'No')
));
$this->addColumn('blabla', array(
    'header'  => Mage::helper('customer')->__('On Hold?'),
    'width'   => '120',
    'index'   => 'bla',
    'renderer' => 'module/sample_grid_renderer'
));

但是这个命令只会将下拉列表添加到我的网格标题中,而我需要将下拉列表显示在该网格上列出的每个产品的左侧(就像在产品编辑页面的后端中选择相关产品或追加销售产品时出现的复选框一样)简单快速的解决方案,作为下一步研究的提示-重写
Mage\u Adminhtml\u Block\u Catalog\u Product\u Grid
,函数
\u prepareColumns
。示例:您将创建块
模块\u名称\u块\u示例

class Module_Name_Block_Sample extends Mage_Adminhtml_Block_Catalog_Product_Grid
{
    protected function _prepareColumns()
    {
        $this->addColumn('blabla', array(
            'header' => Mage::helper('customer')->__('On Hold?'),
            'width' => '120',
            'index' => 'bla',
            'type' => 'options',
            'options' => array('1' => 'Yes', '0' => 'No')
        ));

        return parent::_prepareColumns();
    }
}
您将获得它作为第一个字段。而且它可能需要重写\u prepareCollection


但我知道,这可能不是更好的解决方案。

您需要的是一个自定义的渲染器,您可以在其中显示任何想要的HTML。大概是这样的:

$this->addColumn('blabla', array(
        'header'  => Mage::helper('customer')->__('On Hold?'),
        'width'   => '120',
        'index'   => 'bla',
        'type'    => 'options',
        'options' => array('1' => 'Yes', '0' => 'No')
));
$this->addColumn('blabla', array(
    'header'  => Mage::helper('customer')->__('On Hold?'),
    'width'   => '120',
    'index'   => 'bla',
    'renderer' => 'module/sample_grid_renderer'
));
然后创建渲染器类,在其中创建所需的HTML:

class Module_Name_Block_Sample_Grid_Renderer 
    extends Mage_Adminhtml_Block_Widget_Grid_Column_Renderer_Abstract
{
    public function render(Varien_Object $row)
    {
        $html = '<select name="row'.$row->getId().'"></select>';
        return $html;
    } 
}
类模块\名称\块\示例\网格\渲染器
扩展Mage\u Adminhtml\u Block\u Widget\u Grid\u Column\u Renderer\u Abstract
{
公共函数渲染(Varien_对象$row)
{
$html='';
返回$html;
} 
}
试试看!祝您有个美好的一天。多谢各位