zoukankan      html  css  js  c++  java
  • handsontable 排序问题

    排序是表格的基础功能,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排序,再刷新数据,标示就会一闪而过,因为表格会刷新。

    20151104 排序没有实现。

    虽然由R排好序,再刷新数据,但是想要handsontable支持的三角形标示,有4个thead,不知道那个class该加在哪?如果不要标示,就需要一个对象来维护每个column的排序状态:先增再减再增。

    R默认的sort 以上已经说明过,过程有点复杂,一时半会调不好;如果第一行冻结的话,defaultsort的结果,第一行会有两组数据,其中一组盖着另一组,好像有这个情况。

    计划:加一个按钮,来表示排序状态,不用默认的排序流程了。

  • 相关阅读:
    嵌入式编程中使用 do{...} while(0) 的解释
    ESP32学习笔记(一) 环境搭建与下载
    预告:准备开个坑,集中学习一下esp32模块
    【信号与系统】多项式化简方法
    nginx二级域名代理
    nginx配置ssl证书
    springBoot使用阿里云的证书
    vue-cli3项目开启less支持并引入短链接
    一键安装系列
    centos7增加swap
  • 原文地址:https://www.cnblogs.com/wang-jing/p/4931899.html
Copyright © 2011-2022 走看看