找回密码
 立即注册

QQ登录

只需一步,快速开始

102102

注册会员

2

主题

7

帖子

33

积分

注册会员

积分
33
最新发帖

[已处理] spreadjs,排序

102102
注册会员   /  发表于:2021-4-19 17:20  /   查看:1781  /  回复:5
  1. [{
  2.     name:'测试1',
  3.     id:1
  4. },{
  5.     name:'测试2',
  6.     id:2
  7. }]
复制代码
我的json数据如上,我的葡萄城表格只显示一列,name字段。我点击列头升序或者降序操作,name字段能排序,但是id字段的顺序没有跟着变化,比如降序结果如下:
  1. [{
  2.     name:'测试2',
  3.     id:1
  4. },{
  5.     name:'测试1',
  6.     id:2
  7. }]
复制代码


name字段确实降序了,但是由于id字段没有在表格生成列展示,导致id没有生效,导致最终结果数据错乱,求解决

6 个回复

倒序浏览
Derrick.Jiao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2021-4-19 17:57:15
沙发
初步判断是添加筛选的区域的问题,您需要将id对应的列添加到筛选去区域中,关于筛选您可以参考学习指南
https://demo.grapecity.com.cn/sp ... ilter-dialog/purejs

若仍未解决您的问题,建议您提供能复现问题的demo

点评

能否加微信或者qq咨询  发表于 2021-4-20 09:21
回复 使用道具 举报
102102
注册会员   /  发表于:2021-4-19 18:39:09
板凳
DerrickJiao 发表于 2021-4-19 17:57
初步判断是添加筛选的区域的问题,您需要将id对应的列添加到筛选去区域中,关于筛选您可以参考学习指南
ht ...

我的id是没有对应列的,表格不需要展示id这个字段哦,只展示name这一个字段
回复 使用道具 举报
Derrick.Jiao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2021-4-20 10:44:53
地板
102102 发表于 2021-4-19 18:39
我的id是没有对应列的,表格不需要展示id这个字段哦,只展示name这一个字段

这边调研了一下,这种情况目前没有更好的方法。建议您将id列也绑定在表单上,然后将该列隐藏。这样筛选后,获取的数据源,对应的id也会跟着筛选后的结果一起
回复 使用道具 举报
102102
注册会员   /  发表于:2021-4-20 10:47:16
5#
DerrickJiao 发表于 2021-4-20 10:44
这边调研了一下,这种情况目前没有更好的方法。建议您将id列也绑定在表单上,然后将该列隐藏。这样筛选后 ...

这边有几十个页面呢,这样改造成本太大 了,而且也不仅仅是id这一个字段,实际业务中字段多达几十个的
回复 使用道具 举报
Derrick.Jiao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2021-4-20 11:03:52
6#
102102 发表于 2021-4-20 10:47
这边有几十个页面呢,这样改造成本太大 了,而且也不仅仅是id这一个字段,实际业务中字段多达几十个的

是这样的,SpreadJS采用排序策略就是交换单元格,而不是直接对数据源直接排序,因此,无法直接通过筛选某一列达到其他字段一块排序调整。

这边给您提供的这个思路您可以参考一下,您可以监听RangeSorting事件,当用户点击升降序时,将cancel属性设为true,将这个排序事件取消,然后您需要自己通过代码或其他第三方组件对您的数据源进行排序,然后重新将数据源设置进去。目前这是唯一可行的方案。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部