1

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

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

但是此命令仅将下拉列表添加到我的网格标题中,而我需要将下拉列表显示在该网格上列出的每个产品的左侧(就像当您进入产品编辑页面的后端时出现的复选框一样,您选择相关产品,或追加销售产品)

4

3 回答 3

0
  $country = $fieldset->addField('country', 'select', array(
  'name'  => 'country',
  'label'     => 'Country',
  'values'    => Mage::getModel('adminhtml/system_config_source_country') ->toOptionArray()
  ));

试试看!祝你今天过得愉快。谢谢你。

于 2014-09-04T13:18:31.100 回答
0

简单快速的解决方案作为下一步研究的技巧 - 重写Mage_Adminhtml_Block_Catalog_Product_Grid,功能_prepareColumns。示例您将创建您的块Module_Name_Block_Sample

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();
    }
}

你会得到它作为第一个字段。它可能需要重写_prepareCollection。

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

于 2012-09-07T15:03:45.813 回答
0

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

$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;
    } 
}
于 2012-09-07T16:27:05.523 回答