本帖最后由 lynn512 于 2021-3-16 13:58 编辑
SpreadJS V13.1 支持了自定义排序方法,可以通过回调函数compareFunction来自定义排序比较的逻辑。
由此我们可以实现中文按照拼音排序,或者实现类似版本好的排序,比如1.1.10和12.1.0的比较
实现自定义排序有两种方法
1. 调用sortRange时,sortInfo中添加compareFunction回调
如:- function pinyinCompare (obj1, obj2) {
- return obj1.toString().localeCompare(obj2.toString(), 'zh');
- }
- sheet.sortRange(1, 0, 8, 2, true, [
- {index:0, ascending:true, compareFunction: pinyinCompare}, //中文排序
- ]);
复制代码
2. 在RangeSorting事件中注入
如:
- function compareSize(value1, value2) {
- //...
- //return -1;
- //return 1;
- return 0;
- }
- sheet.bind(GC.Spread.Sheets.Events.RangeSorting, function (e, info) {
- //if(info.range is suited) {
- info.compareFunction = compareSize; // set the customize function.
- //}
- });
复制代码
两种方法只要根据使用场景选择即可。
|
|