问题描述

自己开发与第三方module都出现一个问题,Grid的column排序点击三次后会出现重复record,头两次会加载,第三次直接出现结果,所以可以判断是加载cache数据时出现问题。

问题原因

vendor/magento/module-ui/view/base/web/js/grid/data-storage.js
grid数据提取后会加到cache中,但只会保存一个id数据,并且默认id名是entity_id,所以使用的id不是entity_id则需要在ui component xml中额外指定,但大多数开发者会忽略这一点。

参考以下数据源设置,cms的数据ID不是entity_id而是page_id,一般primaryFieldName节点不会设置错,但storageConfig节点不设置不会出现明显问题。

<!-- vendor/magento/module-cms/view/adminhtml/ui_component/cms_page_listing.xml -->
<dataSource name="cms_page_listing_data_source"><argument name="dataProvider" xsi:type="configurableObject"><argument name="class" xsi:type="string">Magento\Cms\Ui\Component\DataProvider</argument><argument name="name" xsi:type="string">cms_page_listing_data_source</argument><argument name="primaryFieldName" xsi:type="string">page_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">page_id</item></item></item></argument></argument>
</dataSource>

magento2 后台Grid点击column进行排序时会出现单个重复record相关推荐

  1. php liger 表格排序,LigerUI之grid表格点击表头标题排序实现

    LigerUI之grid表格点击表头标题排序实现: 通过ajax方式加载数据之后,点击表头排序两种方式实现. 第一种: grid.set({ dataAction: 'local', url: '', ...

  2. element Table表格实现前x行恒展示,不会被折叠,设置点击表头按钮排序。

    table表格前X行恒展示不会被折叠. 表头筛选按钮示意图: // data --渲染的数据(每一列每一行),请求回来的. 默认通过字段名和每一个headers对象中每一个prop来对应起来渲染数据的 ...

  3. [WPF]ListView点击列头排序功能实现

    [WPF]ListView点击列头排序功能实现 这是一个非常常见的功能,要求也很简单,在Column Header上显示一个小三角表示表示现在是在哪个Header上的正序还是倒序就可以了.微软的MSD ...

  4. QT中QTableView 点击表头进行排序

    今日,由于工作需要,要实现在QTableView中点击表头进行排序的功能,但QTableView中并未提供此功能,经过苦苦的网络搜索也为发现可用的代码.最后经过跟踪QTableWidget的排序功能实 ...

  5. wpf中ListView控件点击列头排序功能实现(超简洁实用)

    .xaml文件中的主要代码 <ListView Name="lvMeasureData" GridViewColumnHeader.Click="Sort_Clic ...

  6. datagridview 点击列标题排序

    开发winform中,平时经常用到数据列表,我们大多选用datagridview,但是此控件本身没有排序的功能.参阅网上资料.留下标记,以后备用. datagridview的数据显示一般是通过数据绑定 ...

  7. 对后台返回的数据进行评分排序、时间排序!

    导读:对后台返回的数据进行评分排序,时间排序,可以倒序,可以正序. 按照评分排序 正序 qualityScoreSort(){this.tableData0.sort((a, b) => {re ...

  8. Magento2后台忘记密码

    为什么80%的码农都做不了架构师?>>>    Magento2后台忘记密码处理方式 第一种(Magento CLI 命令行创建新用户): php bin/magento admin ...

  9. android仿IT之家、炫酷水波纹、Kotlin MVP项目、后台模拟点击、蜂巢迷宫小游戏等源码...

    Android精选源码 Android 炫酷的多重水波纹源码 Android开发一款基于行为识别和个性化推荐的智能推荐APP 仿IT之家Android源码 android判断App位于前台或者后台源码 ...

最新文章

  1. Java语言的基础知识9
  2. 人工智能推理应用于场景的四大典型方式
  3. java实现上传_文件上传(java)
  4. Kernel Memory Layout on ARM Linux
  5. pure tornado -- table
  6. python r语言 数据分析_R vs. Python,数据分析中谁与争锋?
  7. JAVA使用反射的方法,参数是数组怎么办?
  8. 怎么看作业部落的html,HTML问题汇总
  9. 自顶向下(top down)简介
  10. (伪)点到线段的距离 C++
  11. python平方数_python数字平方
  12. RINEX3文件中的toc,toe,IODE
  13. Content是什么?Android中的Content、Activity、Application 有什么区别?
  14. 山东理工大学ACM平台题答案关于C语言 1177 C语言实验——时间间隔
  15. 关于Loadlibrary 失败-找不到指定模块126错误
  16. 颜色迁移之一——基础知识(色彩空间及其转换)
  17. STM32CubeMonitor监控程序目标变量并导出结果为csv格式
  18. springboot2整合redis使用lettuce连接池(解决lettuce连接池无效问题)
  19. IDEA使用单元测试对数据库的insert语句进行测试,出现添加多条问题的解决方案
  20. 一个平庸的人的自我反思

热门文章

  1. 一朵落地中国的“智能云”是如何飘到你身边的!
  2. python判断一个数是不是完全平方数
  3. 《Oracle高性能SQL引擎剖析:SQL优化与调优机制详解》一2.3 执行计划各个列的含义...
  4. mongoDB简单介绍及安装
  5. JAVA 中的null
  6. ionic 幻灯指令 ion-slide-box
  7. initrd的使用及说明
  8. 防止电脑辐射必看 保护好你的肌肤 - 生活至上,美容至尚!
  9. try...catch...finally的陷阱——加锁的线程开发经验分享
  10. EventBus 使用介绍