Voglio creare un collegamento a una griglia personalizzata nel mio amministratore con filtri predefiniti. La griglia è realizzata con un componente di elenco dell'interfaccia utente (XML) e ha una colonna chiamata form_id
che è configurata in questo modo:
<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 griglia funziona bene. Posso applicare il filtro e tutto funziona bene. La griglia viene ben aggiornata con una richiesta XHR.
Tuttavia ... Voglio essere in grado di avere un valore di filtri predefinito ad un certo punto. Ad esempio, voglio essere in grado di aprire la griglia quando viene filtrata su ID = 3.
Quindi ho già provato a caricare la pagina con gli stessi parametri URL della richiesta XHR, nonché semplicemente aggiungendo gli unici parametri richiesti:
?namespace=form_response_listing&search=&filters[placeholder]=true&filters[form_id][from]=3&filters[form_id][to]=3&paging[pageSize]=20&paging[current]=1
Così come:
?filters[form_id][from]=3&filters[form_id][to]=3
Entrambi senza successo. Quindi, come posso pre-riempire i filtri utilizzando l'URL?
Modificare:
Non sono sicuro che si tratti di un duplicato dell'altra domanda (come indicato nei commenti seguenti). Nel mio caso, sto usando un tipo virtuale come raccolta per la mia griglia:
<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>
Quindi non è che ho una classe Block fisica per il mio widget della griglia, è puramente creata con un componente XML dell'interfaccia utente che elenca XML.
Ciononostante, controllerò comunque se la domanda a cui mi rivolgerò aiuterà il mio caso d'uso.
prepareColumns
metodo.