Magento2.1 ui grid, hapus atau hapus masalah filter (setelah menghapus filter, baris hasil berlaku untuk seluruh koleksi)

12

Saya membuat ui grid di magento 2.1.0 dan menghadapi masalah saat menghapus filter atau menghapus semua filter dari ui grid. Hasil difilter saya menempati seluruh grid berarti baris yang sama diulang di seluruh grid setelah menghapus filter.

Saya mencari tahu mengapa masalah ini muncul, tetapi tidak dapat memperbaiki masalah ini.

Masalah timbul karena mui / index / render mendapatkan permintaan tidak menyala saat menghapus filter atau menghapus semua filter.

Bahkan itu berfungsi ketika 2 filter atau lebih diterapkan dan saya menghapusnya tetapi tidak dalam kasus filter terakhir diterapkan.

rajneesh gupta
sumber
Ini terjadi karena caching khusus untuk filter aktif pertama yang difasilitasi. Tolong beri saya saran untuk menyelesaikan masalah ini.
rajneesh gupta

Jawaban:

21

Hanya untuk menambah solusi sebelumnya. Perbaikan khusus adalah menambahkan item 'storageConfig'. Jika ini tidak ada, Anda akan melihat masalah di mana data baris digandakan.

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

Di mana 'entity_id' adalah kunci utama Anda untuk pengumpulan data, dan juga sama dengan yang didefinisikan dalam

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

Dan berikut ini bisa dihapus sepenuhnya. Karena ini hanya menduplikasi nilai yang ditentukan dalam node '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>
Chris
sumber
ya Anda benar, ini berfungsi sekarang
rajneesh gupta
Ceria untuk solusi Anda :) +1 dari saya
Keyur Shah
13

saya memiliki masalah yang sama dan saya menyelesaikannya dengan kode ini di 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>

Lihatlah nama simpul "DataProvider". Semoga ini bisa membantu

Tony Bartiloro
sumber
2
Ya, itu bekerja dengan baik, Terima kasih banyak :)
rajneesh gupta
terima kasih @Tony u telah menghemat waktu saya bekerja dengan sempurna jadi + pilih
Nagaraju K
6

Saya mendapatkan masalah yang sama di Magento 2.3 dan diselesaikan dengan menggunakan kode berikut di 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>
Aasim Goriya
sumber
Bisakah Anda memberi tahu saya di mana Anda memperbaikinya?
Sander van Zuidam
1
@Aasim Goriya, Saya juga mendapat masalah yang sama, menambahkan kode Anda. Sekarang filter berfungsi dengan baik. Terima kasih, Anda menghemat waktu saya.
balu
1
@ DhadukMitesh apa yang Anda maksud dengan filter default? bisakah Anda menjelaskan lebih lanjut?
Aasim Goriya
1
@DhadukMitesh ok jadi masalah Anda adalah ketika Anda mengatur ulang filter, grid Anda tidak menampilkan semua nilai dengan benar?
Aasim Goriya
1
@DhadukMitesh Saya rasa ini tidak mungkin, karena data kotak Magento disimpan dalam tabel ui_bookmark dan ketika Anda memfilter data akan disimpan di ui_bookmark sehingga tidak mungkin untuk mengatur ulang filter hingga perubahan data di tabel ui_bookmark, jadi Anda perlu untuk menghapus entri tabel ui_bookmark saat laman dimuat.
Aasim Goriya