找回密码
 立即注册

QQ登录

只需一步,快速开始

z3393898

初级会员

14

主题

38

帖子

446

积分

初级会员

积分
446
z3393898
初级会员   /  发表于:2018-3-21 09:32  /   查看:3610  /  回复:6
产品版本:spreadjsv9
浏览器版本: ie11
问题描述:使用sortRange方法让某一列排序,代码执行了但是没有效果
关键代码:
var spread = GcSpread.Sheets.findControl(document.getElementById('bydy'));
var sheet = spread.getActiveSheet();
[td]sheet.sortRange(-1, 2, -1, 1, true, [
        {index:0, ascending:true}    ]);



[/td]
blob245022277.png
对图中这一列排序,不起作用,应该如何处理。

6 个回复

倒序浏览
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2018-3-21 17:50:14
沙发
index:0改为 index:2
回复 使用道具 举报
z3393898
初级会员   /  发表于:2018-3-22 11:07:51
板凳

var spread = GcSpread.Sheets.findControl(document.getElementById('bydy'));
    var sheet = spread.getActiveSheet();
    sheet.sortRange(0, 0, -1, -1, true, [
        {index:1, ascending:true}
    ]);
这样试了一下,的确出现了排序效果,按照索引为1的列排序了 blob611649779.png
但是表头什么的也都乱套了。我只想让按照数据区排序,所以改成了
var spread = GcSpread.Sheets.findControl(document.getElementById('bydy'));
    var sheet = spread.getActiveSheet();
    sheet.sortRange(7, 0, -1, -1, true, [
        {index:1, ascending:true}
    ]);
把第一个参数改成了7,也就是数据区开始的第一行。可是排序就不生效,试了一下,row参数只有为0的时候才生效,请问为什么会这样,怎么解决
回复 使用道具 举报
z3393898
初级会员   /  发表于:2018-3-22 16:08:32
地板
var spread = GcSpread.Sheets.findControl(document.getElementById('bydy'));
    var sheet = spread.getActiveSheet();
    sheet.sortRange(7, 0, 10, -1, true, [
        {index:1, ascending:true}
    ]);
改成这样解决了,行不从0开始后面的范围就不能用-1了。
不过现在的新问题是,重新按照产品名称列排序之后,数据源里的产品名称顺序倒是和界面上一样,但是数据源里的产品内码顺序还是原来的,就导致了数据源混乱,这一块没有办法在排序的时候,把数据源也重新排序吗
回复 使用道具 举报
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2018-3-22 18:42:58
5#
我这边看了一下,数据源是跟排序对应改变的
image.png731653442.png
原始数据源为
var customers = [
                   { ID:0, Name:'C', Info1:'Info0' },
                   { ID:1, Name:'A', Info1:'Info1' },
                   { ID:2, Name:'B', Info1:'Info2' },
                ];
排序后数据源变成了上图所示
回复 使用道具 举报
z3393898
初级会员   /  发表于:2018-3-23 15:26:53
6#
这是我的排序前和排序后的第一行数据源:

blob844557189.png blob95561522.png
图中看出名称变了,但是内码还是原来的,请问您使用的是sortRange方法吗?
回复 使用道具 举报
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2018-3-23 18:29:25
7#
您要不提供一下ssjson,或者demo,我具体看一下吧, 要不我这边重现不出您的问题,也没办法知道是什么原因。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部