排序是表格的基础功能,handsontable也会支持。
有时需求会很复杂,需要自定义排序,或者调用其他排序方法;自定义排序,比较复杂,没做过;今天要用的是调用R中的排序方法。
有两个事件beforeColumnSort 和 afterColumnSort;有用的是前者,index,order参数,但是不支持:return false; 禁用默认的排序方法。
在源码中,有几个重要的地方:
defaultSort:默认的排序方法;因为表格中data和字符串混在一起,想只对data排序,如果typeof a[1] == ‘String‘ 把a[1] = infinity或者return -1;结果也不理想。它支持的排序算法有问题,只会两两比较,如果有相同的数字,则会与后一个数字进行比较,排序结果就会出错。
this.defaultSort:下一句是调用排序方法。如果注释掉,就不会执行,但是图标还会发生变化。
beforeColumnSort:排序的事件流程,可以看清楚,各阶段的效果
beforeColumnSort event:通过设置hot.sortOrder = false; 第一次的排序,仍然是从小到大。后面还会出错。
目的:string不参与排序
1、修改defaultSort没有成功;
2、注释掉执行排序的语句,由R排序,再刷新数据,标示就会一闪而过,因为表格会刷新。
时间: 2024-12-30 22:33:46