Magento2.1 ui grid, rimuovi o cancella il problema del filtro (dopo aver rimosso il filtro, la riga del risultato si applica all'intera raccolta)


12

Ho creato la tua interfaccia utente in magento 2.1.0 e affrontando il problema durante la rimozione dei filtri o deselezionando tutti i filtri dalla griglia dell'interfaccia utente. Il mio risultato filtrato occupa l'intera griglia significa la stessa riga ripetuta nell'intera griglia dopo aver rimosso il filtro.

Capisco perché si presenta questo problema, ma incapace di risolverlo.

Il problema sorge a causa della richiesta get mui / index / render non si attiva quando si rimuove il filtro o si cancella tutto il filtro.

In effetti ha funzionato quando sono stati applicati 2 o più filtri e li rimuovo ma non nel caso dell'ultimo filtro applicato.


Ciò sta accadendo a causa della speciale memorizzazione nella cache per il primo filtro applicato attivo. Per favore, dammi qualche suggerimento per risolvere questo problema.
Rajjesh Gupta,

Risposte:


21

Solo per aggiungere alla soluzione precedente. La correzione specifica è quella di aggiungere l'elemento 'storageConfig'. Se manca questo, vedrai il problema in cui i dati della riga sono duplicati.

<item name="storageConfig" xsi:type="array">
    <item name="indexField" xsi:type="string">entity_id</item>
</item>

Dove "entity_id" è la chiave primaria per i dati di raccolta e anche la stessa definita in

<argument name="primaryFieldName" xsi:type="string">entity_id</argument>

E quanto segue può essere rimosso completamente. Poiché questo è solo la duplicazione del valore specificato già nel nodo 'dataProvider'.

<argument name="data" xsi:type="array">
    <item name="js_config" xsi:type="array">
        <item name="component" xsi:type="string">Magento_Ui/js/grid/provider</item>
    </item>
</argument>

sì, hai ragione, ora funziona
rajneesh gupta,

Saluti alla tua soluzione :) +1 da parte mia
Keyur Shah,

13

ho avuto lo stesso problema e risolvo con questo codice in ui_component xml:

<dataSource name="storelocator_store_listing_data_source">
    <argument name="dataProvider" xsi:type="configurableObject">
        <argument name="class" xsi:type="string">StoreGridDataProvider</argument>
        <argument name="name" xsi:type="string">storelocator_store_listing_data_source</argument>
        <argument name="primaryFieldName" xsi:type="string">store_id</argument>
        <argument name="requestFieldName" xsi:type="string">id</argument>
        <argument name="data" xsi:type="array">
            <item name="config" xsi:type="array">
                <item name="component" xsi:type="string">Magento_Ui/js/grid/provider</item>
                <item name="update_url" xsi:type="url" path="mui/index/render"/>
                <item name="storageConfig" xsi:type="array">
                    <item name="indexField" xsi:type="string">store_id</item>
                </item>
            </item>
        </argument>
    </argument>
    <argument name="data" xsi:type="array">
        <item name="js_config" xsi:type="array">
            <item name="component" xsi:type="string">Magento_Ui/js/grid/provider</item>
        </item>
    </argument>
</dataSource>

Dai un'occhiata al nome nodo "DataProvider". Spero che sia d'aiuto


2
Sì, ha funzionato benissimo, grazie mille tony :)
rajneesh gupta,

grazie @Tony mi hai risparmiato tempo lavorando perfettamente quindi + voto
Nagaraju K

6

Ho riscontrato lo stesso problema su Magento 2.3 e risolto utilizzando il seguente codice in ui_component xml.

<dataSource component="Magento_Ui/js/grid/provider" name="listing_data_source">
        <settings>
            <storageConfig>
                <param name="indexField" xsi:type="string">primary_id</param>
            </storageConfig>
            <updateUrl path="mui/index/render"/>
        </settings>
        ...
        ...
</dataSource>

Puoi dirmi dove l'hai risolto?
Sander van Zuidam,

1
@Aasim Goriya, anche io ho avuto lo stesso problema, aggiunto il tuo codice. Ora i filtri funzionano bene. Grazie, mi hai risparmiato tempo.
balu,

1
@DhadukMitesh cosa intendi per filtro predefinito? puoi per favore spiegare di più?
Aasim Goriya,

1
@DhadukMitesh ok quindi il tuo problema è quando reimposta il filtro la tua griglia non mostra tutti i valori corretti?
Aasim Goriya,

1
@DhadukMitesh Non penso che ciò sia possibile, poiché i dati della griglia di Magento vengono salvati nella tabella ui_bookmark e quando si filtrano i dati verranno salvati in ui_bookmark in modo che non sia possibile ripristinare il filtro fino alla modifica dei dati nella tabella ui_bookmark, quindi è necessario per rimuovere le voci della tabella ui_bookmark durante il caricamento della pagina.
Aasim Goriya,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.