Массовое действие не работает для сериализатора сетки Magento

Я создал сетку внутри вкладки с помощью сетки сериализатора с помощью этот урок. Затем я добавил массовость к этой сетке, используя этот урок.

Появился блок массовых действий, но когда я выбираю сущности, выбираю массовость и нажимаю «Отправить», в консоль браузера выводится следующая ошибка:

"ReferenceError: {gridId}_massactionJsObject is not defined"

Кто-нибудь когда-нибудь пытался добавить массовое действие к сетке внутри вкладки? Как решить эту ошибку?

2

Решение

Вместо удаления var в абстрактном классе просто установите объект в окно.

в app / design / adminhtml / default / default / template / widget / grid.phtml вызывает getAdditionalJavascript ()

В вашем сеточном файле добавьте эту функцию.

protected function getAdditionalJavascript() {
return 'window.{gridId}_massactionJsObject = {gridId}_massactionJsObject;';
}
4

Другие решения

Я только что попытался сделать это сегодня и столкнулся с той же проблемой на Magento CE 1.8. После некоторого поиска мы с коллегой обнаружили, что JavaScript в grid.phtml (строки 207-224) работали, но не появлялись в DOM (все еще не уверены, почему). При использовании консоли мы заметили varienGrid объект доступен, потому что он является глобальным, поскольку определяется без var,

С этим, как говорится, мы нашли массовое действие JS в Abstract.php в функции getJavascript() (строка 225) и удалил var из определения переменной. Это решило проблему для нас и, надеюсь, поможет вам. Кроме того, вы не должны изменять ядро. Файл должен быть скопирован в локальный и изменен там.

grid.phtmlприложение / дизайн / adminhtml / по умолчанию / по умолчанию / шаблон / виджет / grid.phtml

Abstract.phpПриложение / код / ​​ядро ​​/ Маг / Adminhtml / блок / виджет / Сетка / Massaction / Abstract.php

2

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector