javascript - 带有 javascript 操作列的 Magento adminhtml 网格

标签 javascript php magento

我正在设计一个基于我自己的模型的自定义 adminhtml 网格,我已经向网格添加了一个操作列,我希望能够单击它以将一些文本复制到剪贴板。

所以在 Grid.php 的 _prepareColumns() 函数中,我添加了操作列,如下所示:

$this->addColumn('action',array(
            'header'    => Mage::helper('sales')->__('To Clipboard'),
            'width'     => '5%',
            'type'      => 'action',
            'getter'     => 'getId',
            'actions'   => array(
                    array(
                        'caption' => Mage::helper('sales')->__('Copy'),
                        'url'     => array('base'=>'*/*/toclipboard'),
                        'field'   => 'id'
                    )
                ),
            'filter'    => false,
            'sortable'  => false,
            'is_system' => true,
        )
    );

我可能需要使用 Javascript 来执行此操作,但我不太确定如何使用。奇怪的是,使用上面的方法也会导致页面重新加载,即使我已经成功地将 $this->setUseAjax(true); 添加到 __construct();

希望能提供一些意见。

最佳答案

您可以在这里做一些有趣的事情。主要是,您需要引用 Action rendererGrid Javascript .您现在拥有的代码应该在操作列中呈现单个链接。但是,如果您提供一系列操作,这将变为 <select>列表。当 <select>呈现,然后 grid.js 文件负责执行操作。

以下是您将在“ Action ”数组中传递的内容的一些示例:

带有链接的 Javascript Onclick

...
    'actions'   => array(
        array(
            'caption' => Mage::helper('sales')->__('Copy'),
            'onclick' => 'window.location = "' . Mage::getUrl('*/*/toclipboard') . '"'
        )
    ),
...

运行前确认

...
    'actions'   => array(
        array(
            'caption' => Mage::helper('sales')->__('Copy'),
            'url'     => array('base'=>'*/*/toclipboard'),
            'confirm' => true
        )
    ),
...

渲染 <select>操作列表(在弹出窗口中打开最后一个操作)

...
    'actions'   => array(
        array(
            'caption' => Mage::helper('sales')->__('Copy'),
            'url'     => array('base'=>'*/*/toclipboard'),
            'confirm' => true
        ),
        array(
            'caption' => Mage::helper('sales')->__('Example'),
            'onclick' => 'window.location = "' . Mage::getUrl('*/*/toclipboard') . '"'
        ),
        array(
            'caption' => Mage::helper('sales')->__('Popup'),
            'popup'   => true
            'url'     => array('base'=>'*/*/toclipboard'),
        )
    ),
...

关于javascript - 带有 javascript 操作列的 Magento adminhtml 网格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19381217/

相关文章:

javascript - 如何通过 JavaScript 设置输入隐藏字段的值?

javascript - Google Maps API MVC 示例说明

javascript - 如何使用 PDO 从 php 文件插入数据?

javascript - 如何将lean()与 Mongoose 和 Bluebird 一起使用?

php - 如何在 CakePHP 中创建子域?

php - 提交订单时Magento没有增加ID

PHP : multiple inputs into other multiple inputs

php - 为什么我会收到此 PHP 警告 : "setlocale(): Specified locale name is too long"?

jquery - 原型(prototype)轮播

mysql - Magento - 谁通过数据库查询在 Magento 网上商店订购了什么?