Chcę utworzyć link do niestandardowej siatki u mojego administratora z predefiniowanymi filtrami. Siatka jest wykonana za pomocą składnika listingu interfejsu użytkownika (XML) i ma kolumnę o nazwie, form_id
która jest skonfigurowana w następujący sposób:
<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>
Siatka działa dobrze. Mogę zastosować filtr i wszystko działa dobrze. Siatka jest ładnie aktualizowana przez żądanie XHR.
Jednak ... Chcę mieć możliwość zdefiniowania wartości filtrów w pewnym momencie. Na przykład chcę móc otworzyć siatkę, gdy jest filtrowana według ID = 3.
Próbowałem już załadować stronę z tymi samymi parametrami adresu URL, co żądanie XHR, a także po prostu dodać tylko wymagane parametry:
?namespace=form_response_listing&search=&filters[placeholder]=true&filters[form_id][from]=3&filters[form_id][to]=3&paging[pageSize]=20&paging[current]=1
Jak również:
?filters[form_id][from]=3&filters[form_id][to]=3
Oba bez powodzenia. Jak mogę wstępnie wypełnić filtry za pomocą adresu URL?
Edytować:
Nie jestem pewien, czy jest to duplikat drugiego pytania (jak wspomniano w komentarzach poniżej). W moim przypadku używam typu wirtualnego jako kolekcji dla mojej siatki:
<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>
Więc nie chodzi o to, że mam fizyczną klasę Block dla mojego widgetu grid, jest ona czysto utworzona za pomocą komponentu interfejsu użytkownika z listą XML.
Niemniej jednak sprawdzę, czy pytanie, o którym mowa, pomoże w moim przypadku użycia.
prepareColumns
metody.