Layui排序只排序当前页的解决方式

1,574 阅读1分钟

layui的默认排序只排序当前页,如何给所有的数据排序呢?

首先在table实例中关闭自动排序 在这里插入图片描述 接下来就是自己设定排序规则:

//监听排序    设置排序规则
        table.on('sort(test)', function(obj){
            table.reload('a', {
                initSort: obj //记录初始排序
                , where: { 
                    field: obj.field //排序字段
                    , order: obj.type //排序方式
                }
            });
        });

这里的a为table实例的id,test为lay-filter

在这里插入图片描述

为了方便偷下懒,写个测试

 @RequestMapping("/queryStudent")
    public Map<String,Object> QueryStudent(@RequestParam(required=false,defaultValue="1")int limit, @RequestParam(required=false,defaultValue="1")int page,Student student,String field,String order){
        System.out.println(field);
        System.out.println(order);
        Page<Student> page1=new Page(page,limit);
        QueryWrapper<Student> queryWrapper = new QueryWrapper();
        String name =  student.getName();
        String time = student.getTime();
        Integer status = student.getStatus();
        if (!StringUtils.isEmpty(name)){
            queryWrapper.like("name",name);
        }
        if (!StringUtils.isEmpty(time)){
            queryWrapper.eq("time",time);
        }
        if (!StringUtils.isEmpty(field) && !StringUtils.isEmpty(order)){
            if("asc".equals(order)){
                queryWrapper.orderByAsc(field);
            }else{
                queryWrapper.orderByDesc(field);
            }
        }
        Page page2 =service.getBaseMapper().selectPage(page1, queryWrapper);
        map.put("code",0);
        map.put("msg","");
        map.put("count",page2.getTotal());
        map.put("data",page2.getRecords());
        return map;
    }

field即为前台传的排序字段,order即为排序方式

后台sql: 在这里插入图片描述 执行效果: 在这里插入图片描述