3

我正在尝试编写一个自定义操作来运行我构建的管理网格。是否可以通过 get 或 post 将网格中的列中的值发送到控制器?

我试过谷歌搜索,但在任何地方都找不到合适的解释。如果可用,则指向列设置(“getter”、“type”等)说明的链接也将很有用。

4

1 回答 1

11

将此代码添加到您的 Grid.php:

        $this->addColumn('action',
            array(
            'header'    =>  Mage::helper('yourmodulename')->__('Action'),
            'width'     => '100',
            'type'      => 'action',
            'getter'    => 'getId',
            'actions'   => array(
                    array(
                            'caption'   => Mage::helper('yourmodulename')->__('Edit'),
                            'url'       => array('base'=> '*/*/edit'),
                            'field'     => 'id'
                    )
            ),
            'filter'    => false,
            'sortable'  => false,
            'index'     => 'stores',
            'is_system' => true,
    ));

这将构建一个“编辑”URL,并将所选行的 ID 作为 URL 的一部分。它看起来像getter 返回的<frontname>/<controllername>/edit/id/<value>位置。 valuegetId()

getter 字段将执行任何标准的 Magento 魔术 getter,即任何属性都是可获取的。所以你可以拥有getName或者getProductUrl如果getIsLeftHanded你想要并且你的控制器可以解析属性。

然后控制器可以使用检索该传递的值Mage::app()->getRequest()->getParam('attributename');

在文档/教程方面,请阅读@AlanStorm 网站上的这篇文章,因为它可能会有所帮助。

HTH,
法学博士

于 2011-04-20T11:49:03.130 回答