• LigerUI LigerGrid getSelectedRows() 多选顺序 不是从上到下修改方法


    1、问题

       LigreGrid内部是选中一个,往selected里塞一个,
      当执行getSelectedRows() 的时候,会把selected以选中的顺序,返回出来,所以是按照选择顺序返回。

      原生代码片段:

      

      人性化的方式应该是按照选中列的从上到下输出

    2、解决

      利用console.log将getSelectedRows()的object打印出来,可以得到这个数组每一个Object有一个__index的参数,并且是按照从上到下的顺序从小到大的数字属性。所以可以以这个属性来进行二次排序,以实现从上到下顺序。考虑到每页的数据量不大,当前是最多一页50个,所以排序算法的效率几乎没有变化,采用最简单的冒泡排序即可。

      增加一个带参数的getSelectedRows方法,传参数即可实现排序。

            getSelectedRows: function (sorted)
            {
                var arr = [];
                for (var i in this.selected)
                {
                    var o = this.selected[i];
                    if (o['__id'] in this.records)
                        arr.push(o);
                }
                if(sorted!=null)
                {
                    console.log("内部排序");
                    var len = arr.length;
                    for (var i = 0; i < len; i++) {
                        for (var j = 0; j < len - 1 - i; j++) {
                            // 相邻元素两两对比,将大的换到后面 实现从小到大
                            if (arr[j].__index > arr[j+1].__index) {
                                // 元素交换
                                var temp = arr[j+1];        
                                arr[j+1] = arr[j];
                                arr[j] = temp;
                            }
                        }
                    }
                }
                return arr;
            },
  • 相关阅读:
    bzoj2751
    bzoj1483
    bzoj1011
    bzoj1412
    bzoj1820
    bzoj1295
    bzoj3444
    Java--Exchanger用于进行线程间的数据交换
    Java--Semaphore控制并发线程数量
    Java--Spring AOP 源码散点记录(最后整理成一篇博客)
  • 原文地址:https://www.cnblogs.com/loveincode/p/7273586.html
Copyright © 2020-2023  润新知