Je veux créer un lien vers une grille personnalisée dans mon administrateur avec des filtres prédéfinis. La grille est faite avec un composant de liste d'interface utilisateur (XML) et il a une colonne appelée form_id
qui est configurée comme ceci:
<column name="form_id">
<argument name="data" xsi:type="array">
<item name="config" xsi:type="array">
<item name="filter" xsi:type="string">textRange</item>
<item name="label" xsi:type="string" translate="true">Form id</item>
</item>
</argument>
</column>
La grille fonctionne très bien. Je peux appliquer le filtre et tout fonctionne bien. La grille est joliment mise à jour avec une demande XHR.
Cependant ... je veux pouvoir avoir une valeur de filtre prédéfinie à un moment donné. Par exemple, je veux pouvoir ouvrir la grille lorsqu'elle est filtrée sur ID = 3.
J'ai donc déjà essayé de charger la page avec les mêmes paramètres d'URL que la demande XHR, ainsi que d'ajouter simplement les seuls paramètres requis:
?namespace=form_response_listing&search=&filters[placeholder]=true&filters[form_id][from]=3&filters[form_id][to]=3&paging[pageSize]=20&paging[current]=1
Aussi bien que:
?filters[form_id][from]=3&filters[form_id][to]=3
Les deux sans succès. Alors, comment puis-je pré-remplir les filtres en utilisant l'URL?
Éditer:
Je ne sais pas s'il s'agit d'un double de l'autre question (comme mentionné dans les commentaires ci-dessous). Dans mon cas, j'utilise un type virtuel comme collection pour ma grille:
<virtualType name="Vendor\Module\Model\ResourceModel\Response\Grid\Collection"
type="Magento\Framework\View\Element\UiComponent\DataProvider\SearchResult">
<arguments>
<argument name="mainTable" xsi:type="string">vendormodule_form_response</argument>
<argument name="resourceModel" xsi:type="string">Vendor\Module\Model\ResourceModel\Response</argument>
</arguments>
</virtualType>
Ce n'est donc pas que j'ai une classe Block physique pour mon widget de grille, elle est purement créée avec un composant UI listant XML.
Néanmoins, je vais quand même vérifier si la question à laquelle je me réfère aidera mon cas d'utilisation.
prepareColumns
méthode.