Como posso enviar um ID do meu formulário para uma grade de listagem de inserção?
O que eu quero fazer é, no meu formulário, carregar uma grade com insert Listing.
Nesta grade, quero todos os resultados com o ID do formulário.
<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>
Abaixo está o código na grade
<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
fonte
fonte
Respostas:
Para adicionar a listagem de inserção por param do componente ui-pai, podemos usar o código abaixo.
A
externalProvider
tag Here é para adicionar o provedor de origem da listagem que estamos inserindo.A
imports
tag Here é usada para importar parâmetros da fonte de dados do formulário atualA
exports
tag Here é usada para exportar os parâmetros de dados do formulário atual para a listagem que será inserida.Adicione a junção com a coluna relevante à coleção atual para usá-la no filtro do provedor de dados da listagem inserida.
No provedor de dados, adicione filtro para este parâmetro:
fonte
Você precisa definir um valor para o parâmetro render_url no insertListing e, em seguida, atualizar esse URL dentro do seu provedor de dados. É necessário executar esta ação duas vezes, pois você precisará ter um provedor de dados para o componente do formulário e outro específico para o componente da listagem.
1 - Declaração correta do componente insertListing: (Fornecedor / Módulo / view / adminhtml / ui_component / vendor_module_form.xml)
2 - Adicione as seguintes alterações ao provedor de dados da página Formulário. Isso mudará o render_url adicionando o parâmetro "id" ao final do URL:
(Fornecedor / Módulo / Ui / DataProvider / [caminho para o seu provedor de dados.php] )
Nota: não copie / cole o bloco inteiro abaixo no seu provedor de dados. Em vez disso, escolha as peças que estão faltando no seu código
3 - Atualize seu componente de listagem. Ele deve ter um parâmetro updateUrl dentro do componente DataSource:
(Fornecedor / Módulo / view / adminhtml / ui_component / vendor_module_listing.xml)
4 - Atualize seu provedor de dados de listagem para alterar o updateUrl no componente de listagem acima
(Fornecedor / Módulo / Ui / DataProvider / [caminho para o seu LISTING-data-provider.php] )
Nota: não copie / cole o bloco inteiro abaixo no seu provedor de dados. Em vez disso, escolha as peças que estão faltando no seu código
Deixe-me saber se você ainda tiver algum problema. Talvez eu não possa responder aos comentários, mas posso atualizar minha resposta.
fonte