Я создал сетку внутри вкладки с помощью сетки сериализатора с помощью этот урок. Затем я добавил массовость к этой сетке, используя этот урок.
Появился блок массовых действий, но когда я выбираю сущности, выбираю массовость и нажимаю «Отправить», в консоль браузера выводится следующая ошибка:
"ReferenceError: {gridId}_massactionJsObject is not defined"
Кто-нибудь когда-нибудь пытался добавить массовое действие к сетке внутри вкладки? Как решить эту ошибку?
Вместо удаления var в абстрактном классе просто установите объект в окно.
в app / design / adminhtml / default / default / template / widget / grid.phtml вызывает getAdditionalJavascript ()
В вашем сеточном файле добавьте эту функцию.
protected function getAdditionalJavascript() {
return 'window.{gridId}_massactionJsObject = {gridId}_massactionJsObject;';
}
Я только что попытался сделать это сегодня и столкнулся с той же проблемой на 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