Ich möchte in meinem Administrator einen Link zu einem benutzerdefinierten Raster mit vordefinierten Filtern erstellen. Das Grid besteht aus einer UI Listing Component (XML) und hat eine Spalte mit dem Namen form_id
, die wie folgt eingerichtet ist:
<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>
Das Gitter funktioniert gut. Ich kann den Filter anwenden und alles funktioniert gut. Das Raster wird mit einer XHR-Anfrage aktualisiert.
Allerdings ... Ich möchte in der Lage sein, irgendwann einen vordefinierten Filterwert zu erhalten. Zum Beispiel möchte ich in der Lage sein, das Raster zu öffnen, wenn es nach ID = 3 gefiltert wird.
Daher habe ich bereits versucht, die Seite mit den gleichen URL-Parametern wie die XHR-Anfrage zu laden und einfach die einzigen erforderlichen Parameter hinzuzufügen:
?namespace=form_response_listing&search=&filters[placeholder]=true&filters[form_id][from]=3&filters[form_id][to]=3&paging[pageSize]=20&paging[current]=1
Ebenso gut wie:
?filters[form_id][from]=3&filters[form_id][to]=3
Beides ohne Erfolg. Wie kann ich Filter mithilfe der URL vorab ausfüllen?
Bearbeiten:
Ich bin nicht sicher, ob dies ein Duplikat der anderen Frage ist (wie in den Kommentaren unten erwähnt). In meinem Fall verwende ich einen virtuellen Typ als Sammlung für mein Raster:
<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>
Es ist also nicht so, dass ich eine physische Block-Klasse für mein Raster-Widget habe, sondern sie wird ausschließlich mit einer UI-Komponente erstellt, die XML auflistet.
Trotzdem werde ich trotzdem prüfen, ob die Frage, auf die verwiesen wird, meinem Anwendungsfall hilft.
prepareColumns
Methode konfiguriert wurden .