【问题标题】:Magento Backend Product list gridMagento 后端产品列表网格
【发布时间】:2012-09-07 14:41:38
【问题描述】:

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

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

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

【问题讨论】:

    标签: magento


    【解决方案1】:

    简单快速的解决方案作为下一个研究的提示 - 重写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。

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

    【讨论】:

      【解决方案2】:

      您需要的是一个自定义渲染器,您可以在其中显示您想要的任何 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;
          } 
      }
      

      【讨论】:

        【解决方案3】:
          $country = $fieldset->addField('country', 'select', array(
          'name'  => 'country',
          'label'     => 'Country',
          'values'    => Mage::getModel('adminhtml/system_config_source_country') ->toOptionArray()
          ));
        

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2015-05-27
          • 2016-07-05
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2017-03-24
          • 1970-01-01
          • 2020-07-14
          相关资源
          最近更新 更多