Вопрос, думаю, решен. Немного распишу, может кому пригодится в будущем.
Вся загвоздка состояла в том, что изначально пошел немного не по стандартному пути. Вместо того, чтобы задавать для параметра HEADERS type=text, type=list (и тп) с параметром editable, я просто использовал в значениях строк <input>, <select>. Так спланировал, чтобы не пользоваться режимом редактирования. Мне показалось это менее удобным, как минимум лишних 3 клика (а при редактировании большого количества строк, увеличивается почти кратно).
В итоге пришел к тому, что при редактировании поля добавляю ему класс edit.
При правке input поля по завершении просто включаю панель:
Код |
---|
let grid = BX.Main.gridManager.getInstanceById('table_reys2');
grid.enableActionsPanel() |
Для select полей (т-к при любом клике по выпадающему меню js грида инвертирует текущее состояние панели), с помощью MutationObserver отслеживаю, добавлялся ли в блок с контрольной панелью класс main-grid-disable, проверяю, есть ли в таблице поля с классом edit и если есть - включаю панель обратно.