找回密码
 立即注册

QQ登录

只需一步,快速开始

vipss

金牌服务用户

23

主题

54

帖子

181

积分

金牌服务用户

积分
181
vipss
金牌服务用户   /  发表于:2016-12-7 18:19  /   查看:5703  /  回复:10
默认的排序功能如何设置某一行不参与排序,例如第一个冻结行不想参与排序和筛选

11 个回复

倒序浏览
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2016-12-8 12:28:41
沙发
您可以通过重写sortRange 方法来实现这个需求。
或者如果您使用的是V10 ,可在rangsorting 事件中取消默认排序,调用sortrange方法对需要的行排序。
http://sphelp.grapecity.com/webh ... heet~sortRange.html
回复 使用道具 举报
vipss
金牌服务用户   /  发表于:2016-12-12 10:40:11
板凳
dexteryao 发表于 2016-12-8 12:28
您可以通过重写sortRange 方法来实现这个需求。
或者如果您使用的是V10 ,可在rangsorting 事件中取消默认 ...

你好,请问可以提供一个Demo么?我筛选的时候,某一行也不想在筛选数据中
回复 使用道具 举报
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2016-12-12 10:58:36
地板
是否可以考虑把筛选按钮放到冻结行?
blob305296019.png

点评

放在冻结行比较奇怪,我们希望能放在头部哦  发表于 2016-12-12 11:42
回复 使用道具 举报
vipss
金牌服务用户   /  发表于:2016-12-12 11:43:29
5#
dexteryao 发表于 2016-12-12 10:58
是否可以考虑把筛选按钮放到冻结行?

可以实现放在头部,冻结行不参与排序和筛选么
回复 使用道具 举报
vipss
金牌服务用户   /  发表于:2016-12-12 11:43:39
6#
dexteryao 发表于 2016-12-12 10:58
是否可以考虑把筛选按钮放到冻结行?

可以实现放在头部,冻结行不参与排序和筛选么
回复 使用道具 举报
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2016-12-12 17:54:53
7#
您好,我这里和开发确认一下,筛选很难实现您的需求,默认冻结行始终会进入筛选列表。
这个功能是和Excel保持一致的,从用户体验一致的角度还是建议筛选按钮放到冻结行。

排序如果想做通过重写代码的方式可以完成,但是筛选就不行了。
回复 使用道具 举报
vipss
金牌服务用户   /  发表于:2016-12-13 10:25:04
8#
dexteryao 发表于 2016-12-12 17:54
您好,我这里和开发确认一下,筛选很难实现您的需求,默认冻结行始终会进入筛选列表。
这个功能是和Excel ...

你好,我现在的需求要求是筛选也要实现,请问筛选有什么接口可以改筛选的数据的么?
排序能否提供一个Demo,谢谢
回复 使用道具 举报
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2016-12-13 16:31:06
9#
您好
冻结行不参与排序可以通过以下代码实现,但是没有接口可以更改筛选的数据项, 筛选排除冻结行的需求暂时无法实现。

  1.         var oldSortRange = GC.Spread.Sheets.Worksheet.prototype.sortRange;
  2.         GC.Spread.Sheets.Worksheet.prototype.sortRange = function(row, column, rowCount, columnCount, byRows, sortInfo){
  3.             var sheet = this;
  4.             if(!byRows || sheet.frozenRowCount() === 0){
  5.                 return oldSortRange.apply(this, arguments)
  6.             }
  7.             else{
  8.                 var frozenRowCount = sheet.frozenRowCount();
  9.                 if(row >= frozenRowCount){
  10.                     return oldSortRange.apply(this, arguments);
  11.                 }
  12.                 else{
  13.                     return oldSortRange.call(this, frozenRowCount, column, rowCount - (frozenRowCount - row), columnCount, byRows, sortInfo);
  14.                 }
  15.             }
  16.         }
复制代码
回复 使用道具 举报
脑袋大
注册会员   /  发表于:2023-7-21 10:33:44
10#
dexteryao 发表于 2016-12-8 12:28
您可以通过重写sortRange 方法来实现这个需求。
或者如果您使用的是V10 ,可在rangsorting 事件中取消默认 ...

这个有没有demo,可以看一下吗
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部