批量操作不适用于 Magento 后端网格序列化程序
Mass action doesn't work for Magento backend grid serializer
我使用 this tutorial. Then I've added a massaction to this grid using this tutorial 使用网格序列化程序在选项卡内创建了一个网格。
出现了批量操作块,但是当我选择实体时,选择批量操作并单击提交,浏览器控制台抛出以下错误:
"ReferenceError: {gridId}_massactionJsObject is not defined"
有没有人试过在选项卡内的网格中添加质量操作?如何解决这个错误?
我今天刚试过,运行 在 Magento CE 1.8 上遇到了同样的问题。经过一番挖掘,我和一位同事发现 grid.phtml(第 207-224 行)中的 JavaScript 是 运行 但没有出现在 DOM 中(仍然不确定为什么)。使用控制台时,我们注意到 varienGrid
对象是可访问的,因为它是全局的,因为它没有定义 var
.
话虽如此,我们在函数getJavascript()
(第225行)中找到了Abstract.php中的质量动作js,并删除了var
来自变量定义。这为我们解决了问题,希望能帮助您。另外,你不应该修改核心。该文件应复制到本地并在那里修改。
grid.phtml - app/design/adminhtml/default/default/template/widget/grid.phtml
Abstract.php - app/code/core/Mage/Adminhtml/Block/Widget/Grid/Massaction/Abstract.php
不要在抽象 class 中删除 var,只需将对象设置为 window。
在 app/design/adminhtml/default/default/template/widget/grid.phtml 中调用 getAdditionalJavascript()
在您的网格文件中添加此函数。
protected function getAdditionalJavascript() {
return 'window.{gridId}_massactionJsObject = {gridId}_massactionJsObject;';
}
我使用 this tutorial. Then I've added a massaction to this grid using this tutorial 使用网格序列化程序在选项卡内创建了一个网格。
出现了批量操作块,但是当我选择实体时,选择批量操作并单击提交,浏览器控制台抛出以下错误:
"ReferenceError: {gridId}_massactionJsObject is not defined"
有没有人试过在选项卡内的网格中添加质量操作?如何解决这个错误?
我今天刚试过,运行 在 Magento CE 1.8 上遇到了同样的问题。经过一番挖掘,我和一位同事发现 grid.phtml(第 207-224 行)中的 JavaScript 是 运行 但没有出现在 DOM 中(仍然不确定为什么)。使用控制台时,我们注意到 varienGrid
对象是可访问的,因为它是全局的,因为它没有定义 var
.
话虽如此,我们在函数getJavascript()
(第225行)中找到了Abstract.php中的质量动作js,并删除了var
来自变量定义。这为我们解决了问题,希望能帮助您。另外,你不应该修改核心。该文件应复制到本地并在那里修改。
grid.phtml - app/design/adminhtml/default/default/template/widget/grid.phtml
Abstract.php - app/code/core/Mage/Adminhtml/Block/Widget/Grid/Massaction/Abstract.php
不要在抽象 class 中删除 var,只需将对象设置为 window。
在 app/design/adminhtml/default/default/template/widget/grid.phtml 中调用 getAdditionalJavascript()
在您的网格文件中添加此函数。
protected function getAdditionalJavascript() {
return 'window.{gridId}_massactionJsObject = {gridId}_massactionJsObject;';
}