Lưới Magento2.1 ui, xóa hoặc xóa vấn đề bộ lọc (sau khi xóa bộ lọc, hàng kết quả áp dụng cho toàn bộ bộ sưu tập)


13

Tôi đã tạo lưới ui trong magento 2.1.0 và gặp vấn đề trong khi xóa bộ lọc hoặc xóa tất cả các bộ lọc khỏi lưới ui. Kết quả được lọc của tôi chiếm toàn bộ lưới có nghĩa là cùng một hàng được lặp lại trong toàn bộ lưới sau khi xóa bộ lọc.

Tôi tìm hiểu tại sao vấn đề này phát sinh, nhưng không thể khắc phục vấn đề này.

Vấn đề phát sinh do mui / index / render get request không kích hoạt trong khi xóa bộ lọc hoặc xóa tất cả bộ lọc.

Trong thực tế, nó hoạt động khi 2 hoặc nhiều bộ lọc được áp dụng và tôi loại bỏ chúng nhưng không áp dụng trong trường hợp bộ lọc cuối cùng được áp dụng.


Điều này xảy ra do bộ nhớ đệm đặc biệt cho bộ lọc ứng dụng hoạt động đầu tiên. Xin vui lòng cho tôi bất kỳ đề xuất nào để giải quyết vấn đề này.
rajneesh gupta

Câu trả lời:


21

Chỉ cần thêm vào các giải pháp trước đó. Cách khắc phục cụ thể là thêm mục 'StorageConfig'. Nếu điều này bị thiếu, bạn sẽ thấy vấn đề trong đó dữ liệu hàng được sao chép.

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

Trong đó 'entity_id' là khóa chính của bạn cho dữ liệu thu thập và cũng giống như được xác định trong

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

Và sau đây có thể được loại bỏ hoàn toàn. Vì đây chỉ là sao chép giá trị được chỉ định trong nút '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>

vâng bạn đúng, nó đang hoạt động ngay bây giờ
rajneesh gupta

Chúc mừng cho giải pháp của bạn :) +1 từ tôi
Keyur Shah

13

tôi đã có cùng một vấn đề và tôi giải quyết với mã này trong 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>

Hãy xem tên nút "DataProvider". Hy vọng nó giúp


2
Vâng, nó hoạt động rất tốt, Cảm ơn rất nhiều tony :)
rajneesh gupta

cảm ơn @Tony u đã tiết kiệm thời gian của tôi để làm việc hoàn hảo vì vậy + bầu chọn
Nagaraju K

6

Tôi đã gặp vấn đề tương tự trên Magento 2.3 và đã giải quyết bằng cách sử dụng đoạn mã sau 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>

Bạn có thể cho tôi biết nơi bạn đã sửa nó?
Sander van Zuidam

1
@Aasim Goriya, tôi cũng gặp vấn đề tương tự, đã thêm mã của bạn. Bây giờ các bộ lọc hoạt động tốt. Cảm ơn bạn, bạn đã tiết kiệm thời gian của tôi.
balu

1
@DhadukMitesh bạn có ý nghĩa gì theo bộ lọc mặc định? bạn có thể vui lòng giải thích thêm?
Aasim Goriya

1
@DhadukMitesh ok vậy vấn đề của bạn là khi bạn đặt lại bộ lọc, lưới của bạn không hiển thị đúng tất cả các giá trị?
Aasim Goriya

1
@DhadukMitesh Tôi không nghĩ điều này có thể xảy ra, vì dữ liệu lưới của Magento lưu trong bảng ui_bookmark và khi bạn lọc dữ liệu sẽ lưu trong ui_bookmark để không thể đặt lại bộ lọc cho đến khi thay đổi dữ liệu trong bảng ui_bookmark, vì vậy bạn cần để xóa các mục trong bảng ui_bookmark trong khi tải trang của bạn.
Aasim Goriya
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.