如何实现element ui中的表格全部数据分页排序

默认情况下, table表格设置了sortable是只能当前页, 数据进行排序的, 这显然是没有多大意义的 ,那么如何实现全部数据分页排序呢?

首先 ,把sortable 写成sortable=“custom”

然后,在标签中加入 @sort-change='sortChange'

最后 ,sortChange方法代码如下:

sortChange(val){
            if(val.order == 'descending'){
                this.order= 'desc'
            }
            if(val.order == 'ascending'){
                this.order= 'asc'
            }
            this.sort = val.prop
            this.index() //获取分页数据的方法
},

至此,前端代码完成

现在修改后端代码,也就是上一步 this.index()请求分页数据方法里的那个接口 我们在里面加个这么一句

$order  = Request::post('order');    //排序字段
$sort  = Request::post('sort');    //排序方式

$orderby = ($sort && $order) ? $sort.' '.$order : 'id desc';//$sort.' '.$order,这里单引号中间是有一个空格的

然后在查询数据库分页数据的代码paginate前插入一句order($orderby)-> 这样就实现了全部数据的排序了,其实原理很简单,点击排序前端会提取出是升序还是降序是那个字段,然后发送获取列表数据的请求数据给后端 ,后端根据传进来的条件来返回数据

你可能感兴趣的:(前端疑难杂症,ui,vue.js,前端)