Как я могу отправить идентификатор из моей формы в сетку листинга вставки?
То, что я хочу сделать, в моей форме я загружаю сетку с листингом вставки.
В этой сетке я хочу все результаты с идентификатором формы.
<insertListing name="insertlisting_colors_one">
<argument name="data" xsi:type="array">
<item name="config" xsi:type="array">
<item name="autoRender" xsi:type="boolean">true</item>
<item name="imports" xsi:type="array">
<item name="spd_id" xsi:type="string">${ $.provider }:data.spd_id</item>
</item>
<item name="ns" xsi:type="string">colors_one_grid</item>
</item>
</argument>
</insertListing>
Ниже приведен код в сетке
<item name="filter_url_params" xsi:type="array">
<item name="color_amount" xsi:type="string">1</item>
<item name="spd_id" xsi:type="string">${ $.parentName }.spd_id</item>
</item>
magento2
uicomponent
Johan
источник
источник
Ответы:
Для добавления списка вставки по параметру родительского пользовательского интерфейса мы можем использовать приведенный ниже код.
Здесь
externalProvider
тэг для добавления поставщика источника списка, который мы вставляем.Здесь
imports
тэг используется для импорта параметров текущего источника данных формыЗдесь
exports
тег используется для экспорта текущих параметров данных формы в листинг, который будет вставлен.Добавьте объединение с соответствующим столбцом в текущую коллекцию, чтобы использовать его в фильтре поставщика данных вставленного списка.
В поставщике данных добавьте фильтр для этого параметра:
источник
Вам нужно установить значение для параметра render_url в insertListing, а затем обновить этот URL в вашем провайдере данных. Необходимо выполнить это действие дважды, так как вам потребуется один поставщик данных для компонента формы, а другой - для компонента листинга.
1 - правильное объявление компонента insertListing: (Vendor / Module / view / adminhtml / ui_component / vendor_module_form.xml)
2 - Добавьте следующие изменения в поставщик данных на странице формы. Это изменит render_url, добавив параметр «id» в конец URL:
(Поставщик / Модуль / Пользовательский интерфейс / DataProvider / [путь-к-вашим-данным-поставщику.php] )
Примечание: не копируйте / вставляйте весь блок ниже на вашем провайдере данных. Вместо этого выберите те части, которые отсутствуют в вашем коде
3 - Обновите свой листинговый компонент. Он должен иметь параметр updateUrl внутри компонента DataSource:
(Vendor / модуль / вид / adminhtml / ui_component / vendor_module_listing.xml)
4 - Обновите ваш провайдер данных листинга, чтобы изменить updateUrl для вышеуказанного компонента листинга
(Поставщик / Модуль / Пользовательский интерфейс / DataProvider / [путь к вашему LISTING-data-provider.php] )
Примечание: не копируйте / вставляйте весь блок ниже на вашем провайдере данных. Вместо этого выберите те части, которые отсутствуют в вашем коде
Дайте мне знать, если у вас все еще есть проблемы. Я не могу ответить на комментарии, но могу обновить свой ответ.
источник