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

必要なのは、必要な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 に答える
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
  $country = $fieldset->addField('country', 'select', array(
  'name'  => 'country',
  'label'     => 'Country',
  'values'    => Mage::getModel('adminhtml/system_config_source_country') ->toOptionArray()
  ));

それを試してみてください!良い1日を。ありがとうございました。

于 2014-09-04T13:18:31.100 に答える