找回密码
 立即注册

QQ登录

只需一步,快速开始

beal

注册会员

1

主题

5

帖子

12

积分

注册会员

积分
12

活字格认证

最新发帖
beal
注册会员   /  发表于:2017-6-29 11:21  /   查看:4490  /  回复:5
使用.ActiveSheet.SetColumnAllowAutoSort方法可设置按某列的值排序

但是如何设置多列排序呢。
比如A列点击了上下小箭头排序后,再点B列,

能否做到A的排列顺序继续存在, 然后添加了B的排序? 就如sql排序 order by a,b

谢谢

5 个回复

倒序浏览
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2017-6-29 14:39:23
沙发
如果是用户点击列头的话现在是只能按照某一列单独排序,
如果想要同时多列排序可以调用SortColumns 方法

public bool SortColumns(int column, int columnCount, SortInfo[] sortInfo);


FarPoint.Win.Spread.SortInfo[] sort = new FarPoint.Win.Spread.SortInfo[1];
sort[0] = new FarPoint.Win.Spread.SortInfo(0, false, System.Collections.Comparer.Default);
fpSpread1.ActiveSheet.SortColumns(0, 2, sort);
回复 使用道具 举报
beal
注册会员   /  发表于:2017-6-29 15:56:57
板凳
dexteryao 发表于 2017-6-29 14:39
如果是用户点击列头的话现在是只能按照某一列单独排序,
如果想要同时多列排序可以调用SortColumns 方法
...

感谢答复,不过好像还是有问题

我尝试了您提的方法,不过好像那几列顺序换了换(比如col5到了col4), 按什么来的我也不清楚
比如 原先是col1,col2,col3,col4,col5
我想实现的是,首先按照cola的值排序,然后再按照colb的值排序
cola colb 可以是col1...col5的任意列。
能否有方法?
回复 使用道具 举报
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2017-6-29 17:37:05
地板
您希望那几列排序就 给SortInfo 里设置对应的列的index就好了
回复 使用道具 举报
beal
注册会员   /  发表于:2017-6-30 09:11:56
5#
感谢,可能是我没表述清楚
根据某列的值,对各行排序的话,要用SortRows。
已解决。
回复 使用道具 举报
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2017-6-30 12:19:59
6#
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部