Коллеги, доброго времени суток!
Помогите, пожалуйста, а то я уже всю голову об монитор разбил.
Имеется деталь с редактируемым реестром. Изначально все было просто - шмякнул добавить запись -> появилась новая строчка в гриде со всеми контроллами -> все работает. Теперь потребовалось расширить функционал таким образом, чтобы можно было делать множественное добавление.
Согласно документации, я добавил миксин LookupMultiAddMixin (т.е. в довесок к ConfigurationGridUtilities и сопутствующим). Записи успешно добавляются, но проблема таких записей в том, что при клике на них нет контроллов редактирования. Т.е. на эти вновь добавленные строки никак не наложились обработчики событий и отображение (кнопочки и т.д.). Первое, что пришло на ум - надо сделать перезагрузку всей детали, но вот как поймать это событие (я имею в виду, давление записей в грид) и послать сообщение на перезагрузку детали - никак не получается. Пробовал уже переопределить кучу всяких функций из LookupMultiAddMixin, особенно те, которые асинхронные, но это приводит к неожиданным результатам (например, тупо удваиваются строки).
Заранее благодарен.
Нравится
Да, забыл сказать, что есть еще одна проблема. Когда делаешь добавление одной записи, то используется страница редактирования объекта детали, что позволяет производить различные автовычисления и "подтягивание" значений элемента основного лукапа. Т.е. если я выбрал Продукт, то автоматом можно подтянуть и тип продукта, и прайс и т.д. В случае множественного добавления все эти автовычисления не срабатывают на вновь добавленные записи. Как я полагаю, эту проблему придется решать уже функцией на странице редактирования основной сущности, которая и будет в результате рефрешить деталь. Но для этого надо решить главную проблему из моего поста выше.
это всё из-за ̶с̶п̶а̶й̶с̶о̶в̶ handleAfterInserted. Попробуйте вот это в методах прописать
handleAfterInserted: function(response) { if (this.Ext.isEmpty(response) || !response.success) { this.hideBodyMask(); return; } this.hideBodyMask(); this.reloadGridData(); }
Варфоломеев Данила,
пасиб, добрый человек! все заработало как надо