magento2 后台Grid点击column进行排序时会出现单个重复record
问题描述
自己开发与第三方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相关推荐
- php liger 表格排序,LigerUI之grid表格点击表头标题排序实现
LigerUI之grid表格点击表头标题排序实现: 通过ajax方式加载数据之后,点击表头排序两种方式实现. 第一种: grid.set({ dataAction: 'local', url: '', ...
- element Table表格实现前x行恒展示,不会被折叠,设置点击表头按钮排序。
table表格前X行恒展示不会被折叠. 表头筛选按钮示意图: // data --渲染的数据(每一列每一行),请求回来的. 默认通过字段名和每一个headers对象中每一个prop来对应起来渲染数据的 ...
- [WPF]ListView点击列头排序功能实现
[WPF]ListView点击列头排序功能实现 这是一个非常常见的功能,要求也很简单,在Column Header上显示一个小三角表示表示现在是在哪个Header上的正序还是倒序就可以了.微软的MSD ...
- QT中QTableView 点击表头进行排序
今日,由于工作需要,要实现在QTableView中点击表头进行排序的功能,但QTableView中并未提供此功能,经过苦苦的网络搜索也为发现可用的代码.最后经过跟踪QTableWidget的排序功能实 ...
- wpf中ListView控件点击列头排序功能实现(超简洁实用)
.xaml文件中的主要代码 <ListView Name="lvMeasureData" GridViewColumnHeader.Click="Sort_Clic ...
- datagridview 点击列标题排序
开发winform中,平时经常用到数据列表,我们大多选用datagridview,但是此控件本身没有排序的功能.参阅网上资料.留下标记,以后备用. datagridview的数据显示一般是通过数据绑定 ...
- 对后台返回的数据进行评分排序、时间排序!
导读:对后台返回的数据进行评分排序,时间排序,可以倒序,可以正序. 按照评分排序 正序 qualityScoreSort(){this.tableData0.sort((a, b) => {re ...
- Magento2后台忘记密码
为什么80%的码农都做不了架构师?>>> Magento2后台忘记密码处理方式 第一种(Magento CLI 命令行创建新用户): php bin/magento admin ...
- android仿IT之家、炫酷水波纹、Kotlin MVP项目、后台模拟点击、蜂巢迷宫小游戏等源码...
Android精选源码 Android 炫酷的多重水波纹源码 Android开发一款基于行为识别和个性化推荐的智能推荐APP 仿IT之家Android源码 android判断App位于前台或者后台源码 ...
最新文章
- Java语言的基础知识9
- 人工智能推理应用于场景的四大典型方式
- java实现上传_文件上传(java)
- Kernel Memory Layout on ARM Linux
- pure tornado -- table
- python r语言 数据分析_R vs. Python,数据分析中谁与争锋?
- JAVA使用反射的方法,参数是数组怎么办?
- 怎么看作业部落的html,HTML问题汇总
- 自顶向下(top down)简介
- (伪)点到线段的距离 C++
- python平方数_python数字平方
- RINEX3文件中的toc,toe,IODE
- Content是什么?Android中的Content、Activity、Application 有什么区别?
- 山东理工大学ACM平台题答案关于C语言 1177 C语言实验——时间间隔
- 关于Loadlibrary 失败-找不到指定模块126错误
- 颜色迁移之一——基础知识(色彩空间及其转换)
- STM32CubeMonitor监控程序目标变量并导出结果为csv格式
- springboot2整合redis使用lettuce连接池(解决lettuce连接池无效问题)
- IDEA使用单元测试对数据库的insert语句进行测试,出现添加多条问题的解决方案
- 一个平庸的人的自我反思
热门文章
- 一朵落地中国的“智能云”是如何飘到你身边的!
- python判断一个数是不是完全平方数
- 《Oracle高性能SQL引擎剖析:SQL优化与调优机制详解》一2.3 执行计划各个列的含义...
- mongoDB简单介绍及安装
- JAVA 中的null
- ionic 幻灯指令 ion-slide-box
- initrd的使用及说明
- 防止电脑辐射必看 保护好你的肌肤 - 生活至上,美容至尚!
- try...catch...finally的陷阱——加锁的线程开发经验分享
- EventBus 使用介绍