找回密码
 立即注册

QQ登录

只需一步,快速开始

Lynn.Dou 讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2021-12-30 12:16  /   查看:2271  /  回复:0
背景:
目前SJS排序方式不支持中文排序,所以需要利用自定义排序来实现。
关于自定义排序相关内容请参考学习指南:
https://demo.grapecity.com.cn/sp ... res/worksheet/sort#

接下来主要介绍如何实现中文排序。
主要代码:
  1. var isAscending;

  2. function initSpread(spread) {
  3. ...
  4. sheet.bind(GC.Spread.Sheets.Events.RangeSorting, function (e, info) {
  5.                 isAscending = info.ascending;
  6.                 info.compareFunction = sortDomain
  7.             });
  8. ...
  9. }

  10. function sortDomain(value1, value2) {
  11.             console.log(value1, '---------', value2)
  12.             console.log(isAscending);

  13.             if(value1 && value2) {
  14.                 return value1.toString().localeCompare(value2.toString(), 'zh');
  15.             } else if(!value1 && !value2) {
  16.                 return 0;
  17.             } else if(value1 && !value2) {
  18.                 return isAscending?-1:1;
  19.             } else if(!value1 && value2) {
  20.                 return isAscending? 1:-1;
  21.             }
  22.         }
复制代码
最终效果如下图:
image.png56436461.png

完整代码请参考附件demo。

中文排序 (1).zip

2.48 KB, 下载次数: 105

0 个回复

您需要登录后才可以回帖 登录 | 立即注册
返回顶部