找回密码
 立即注册

QQ登录

只需一步,快速开始

finstone-lush
金牌服务用户   /  发表于:2024-4-12 12:53  /   查看:1669  /  回复:3
sheet页插入表格,数据源含id, name, code三列数据, 表格绑定name, code字段。

数据绑定后,对name列进行降序排序, 此时获取data, id所对应数据有误
82b441593ede3eed774e74f0cde46b9.png372035216.png

sort.html

3.8 KB, 下载次数: 249

3 个回复

倒序浏览
Ellia.DuanSpreadJS 开发认证
超级版主   /  发表于:2024-4-12 13:56:27
沙发
本帖最后由 Ellia.Duan 于 2024-4-12 14:08 编辑

您好,在17.0.5版本 ,导入您的模板结构,删除id列,进行setDataSource

  1. let data = {
  2.     source:[
  3.         {id:1,name:'aa',code:'aa'},
  4.          {id:2,name:'bb',code:'bb'},
  5.          {id:3,name:'cc',code:'cc'},
  6.     ]
  7. }
  8. var dataSource = new GC.Spread.Sheets.Bindings.CellBindingSource(data);
  9.         sheet.setDataSource(dataSource);
复制代码
然后降序排序,此时sheet.getDataSource()获取到的值是
image.png976253051.png


所以,复现了您的问题,我将深入调研下您的问题,待有进展,会及时联系您。SJS-23802
回复 使用道具 举报
Ellia.DuanSpreadJS 开发认证
超级版主   /  发表于:2024-4-12 16:50:42
板凳
这是目前的设计,SpreadJS表排序是一种范围排序,它会交换表范围内的单元格,但不是简单地对源进行排序。

因为,table可以添加一个 unbind 列,一旦对表进行排序,unbind 行也会根据 sort 列交换范围,在这种情况下,如果只对数据源进行排序,则 unbind 数据不会排序。


针对以上考虑,所以就出现了您的问题。


为此,您可以将所有字段绑定到表,然后隐藏该列。
回复 使用道具 举报
Ellia.DuanSpreadJS 开发认证
超级版主   /  发表于:2024-4-16 12:25:18
地板
您好,如楼上所言,这个是当前设计。您可以将所有字段绑定到表,然后隐藏该列。
本贴就先结贴啦,如果还有疑问,可以追贴询问。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部